我经常利用os.listdir得到一个文件夹中全部文件的文件名和路径信息,但是os.listdir返回的结果的顺序是不确定的,也即与文件夹中的顺序是不相同的。例如,在我的一个文件夹中文件的顺序是
![](https://img.haomeiwen.com/i16785064/27a021577e42f217.png)
我们用如下程序,获取文件名并打印出来
import os
root = 'root'
file_names = os.listdir(root)
for i in range(len(file_names)):
print(file_names[I])
![](https://img.haomeiwen.com/i16785064/5b01f8e8fb6f34c6.png)
可以看到文件名的顺序与文件夹中果然不一致,并且顺序非常散乱,我们观察到文件在文件夹中的顺序是由第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])
结果如下
![](https://img.haomeiwen.com/i16785064/af3db95938ec4428.png)
可以看到与原文件夹的顺序相同
网友评论