我有以下代码部分,我打算通过它以正确的顺序打印文件名:
for root, dirs, files in os.walk(path):
sortedFiles = sorted(files)
for file in sortedFiles[0:]:
print file
这是我得到的:
1.i.jpg
10.i.jpg
102.i.jpg
103.i.jpg
104.i.jpg
105.i.jpg
106.i.jpg
107.i.jpg
108.i.jpg
109.i.jpg
11.i.jpg
...
...
...
如何让 2.i.jpg
出现在 1.i.jpg
之后等等?也就是说,数值的顺序正确吗?
谢谢。
最佳答案
您可以使用键
进行排序:
files = ['1.i.jpg',
'10.i.jpg',
'102.i.jpg',
'103.i.jpg',
'104.i.jpg',
'105.i.jpg',
'106.i.jpg',
'107.i.jpg',
'108.i.jpg',
'109.i.jpg',
'11.i.jpg',
'2.i.jpg']
sorted(files, key=lambda x:int(x.split('.')[0]))
['1.i.jpg',
'2.i.jpg',
'10.i.jpg',
'11.i.jpg',
'102.i.jpg',
'103.i.jpg',
'104.i.jpg',
'105.i.jpg',
'106.i.jpg',
'107.i.jpg',
'108.i.jpg',
'109.i.jpg']
关于python - 与其他字符混合时按数字顺序对文件名进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54681640/