This is my first time asking a question. I've already got so much help from you without even asking. (Gratitude face).
So, I found this useful piece of code from around here a few weeks ago.
numbers = re.compile(r'(\d+)')
parts = numbers.split(value)
parts[1::2] = map(int, parts[1::2])
file_names = 
for root, dirs, files in os.walk(path_to_dir):
for file_name in sorted(files, key=yearly_sort):
you could squeeze it into a lambda provided that
numbers is previously compiled (which increases performance)
numbers = re.compile(r'(\d+)') for file_name in sorted(files, key=lambda value : [int(x) if x.isdigit() else 0 for x in numbers.split(value)][1::2]):
In that case, we do an unnecessary test for items #0 and #3 onwards. Maybe it could be better, but that's the risk with complex lambdas: performance & lisibility can suffer.