You can use the key argument of the function sorted:
filenames = [
'1.0.0.0.py',
'0.0.0.0.py',
'1.1.0.0.py'
]
print sorted(filenames, key=lambda f: map(int, f.split('.')[:-1]))
Result:
['0.0.0.0.py', '1.0.0.0.py', '1.1.0.0.py']
The lambda breaks the file name into parts, removes the last part, and converts the rest to integers. It then sorteduses this value as a sorting criterion.
source
share