如何用python列出其字母数字值的文件?

时间:2019-02-06 19:58:17

标签: python glob

我有一个包含这些.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目录文件列表中的数字值列出文件。如何在不重命名文件的情况下做到这一点?

1 个答案:

答案 0 :(得分:0)

是的。将splitsort与密钥一起使用。

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的问题(当需要修改重复项链接时才将其保留))