【发布时间】:2018-11-10 19:14:05
【问题描述】:
我有一个目录,其中包含许多按特定顺序命名的文本文件:
0.txt
1.txt
2.txt
....
100.txt
101.txt
.....
40000.txt
当我试图检索我正在使用的所有文件的排序列表时:
for file in sorted(os.listdir(filepath)):
print(file)
我得到的结果是:
0.txt
1.txt
10.txt
100.txt
1000.txt
10000.txt
10001.txt
10002.txt
10003.txt
10004.txt
.....
这不是我想要的,我想要它按正常升序排列:
0.txt
1.txt
2.txt
3.txt
4.txt
...
有人知道怎么做吗?
【问题讨论】:
-
如果您的字符串正是这种格式,您可以只用
os.path.splitext去掉.txt,然后去掉int()的基本名称,这就是您的排序键。 -
natsort 执行您所需要的自然排序。
标签: python sorting operating-system