我按顺序读取txt文件时遇到问题。我想按以下顺序阅读文件:
0.txt
1.txt
2.txt
...
10.txt
11.txt
...
19.txt
20.txt
21.txt
...
但是,以下代码
import os
path = "temp/"
dirs = os.listdir(path)
for filename in sorted(dirs):
print filename
返回
0.txt
1.txt
2.txt
10.txt
11.txt
...
19.txt
2.txt
20.txt
...
有什么建议吗?
答案 0 :(得分:3)
您按字面意思对名称进行排序,而不是使用键函数,以便根据名称的整数值对名称进行排序:
for filename in sorted(dirs, key=lambda x: int(x.split('.')[0])):
print filename
请注意,如果您的某个文件名没有遵循正确的格式,则排序可能会引发异常。