我有一个包含这些.txt文件的目录:
1.txt
2.txt
3.txt
...
100.txt
138.txt
...
100.txt
1923.txt
如果我使用python(usign glob或os.listdir())列出目录,则会产生以下结果:
adaptedUsers = sorted(glob.glob(dirName + '*.txt'))
1.txt
10.txt
1000.txt
..
2.txt
..
但是,我想按Windows目录文件列表中的数字值列出文件。如何在不重命名文件的情况下做到这一点?
答案 0 :(得分:0)
是的。将split
和sort
与密钥一起使用。
def natural_sort(x):
radix = x.split(".")[0]
return int(radix) if radix.isdigit() else 0
sorted_list = sorted(os.listdir("."),key = natural_sort)
处理目录中包含非数字文件的情况。
(我在重复项出现之前就已经写了这个答案,因此将其标记为社区wiki,但由于解决了OP的问题(当需要修改重复项链接时才将其保留))