我有以下代码部分,我打算通过它以正确的顺序打印文件名:
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']
