使用Python顺序读取txt文件

时间:2016-08-11 22:27:22

标签: python

我按顺序读取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  
...   

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

您按字面意思对名称进行排序,而不是使用键函数,以便根据名称的整数值对名称进行排序:

for filename in sorted(dirs, key=lambda x: int(x.split('.')[0])):
    print filename

请注意,如果您的某个文件名没有遵循正确的格式,则排序可能会引发异常。