我经常利用os.listdir得到一个文件夹中全部文件的文件名和路径信息,但是os.listdir返回的结果的顺序是不确定的,也即与文件夹中的顺序是不相同的。例如,在我的一个文件夹中文件的顺序是

我们用如下程序,获取文件名并打印出来
import os
root = 'root'
file_names = os.listdir(root)
for i in range(len(file_names)):
print(file_names[I])

可以看到文件名的顺序与文件夹中果然不一致,并且顺序非常散乱,我们观察到文件在文件夹中的顺序是由第4-10位的字符决定的,于是我们以每个文件名的第4-10位的字符对文件名的list进行排序
import os
root = 'root'
file_names = os.listdir(root)
file_names.sort(key=lambda x:int(x[3:10]))
for i in range(len(file_names)):
print(file_names[I])
结果如下

可以看到与原文件夹的顺序相同
网友评论