使用python以错误的顺序从目录中提取文件

2024-09-29 02:18:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用目录中的文件填充tkinter列表框。所有文件的名称都以01-n的数字开头。当我查看目录中的文件时,它们以数字顺序显示。但是,当我将文件加载到列表框中时,它们不会按数字顺序排列。我可以更改前导数字,但相同的文件将始终显示在同一位置。

在这个例子中,我只是使用简化的项目名来保持简单。它仍然显示它们没有按字母顺序或数字顺序排序。

列表应显示为“我的列表框”中的以下内容

01. itemA
02. itemB
03. itemC
04. itemD

但它似乎是:

01. itemA
04. itemD
02. itemB
03. itemC

我可以更改前导数字,但文件将始终以相同的顺序填充(按名称,而不是数字)。奇怪的是,它甚至不是按字母顺序排列的。

我用过这个

i = 0
for filename in os.listdir(directory):
      fileList.insert(i, filename)
      i = i + 1

还有这个

 for filename in os.listdir(directory):
        fileList.insert(END, filename)

两者的结果是一样的。


Tags: 文件in目录名称for顺序字母数字
2条回答

试试这个。

for index, filename in enumerate(sorted(os.listdir(directory))):
        print '{0:02d}. {1}'.format(index + 1, filename)

如果该数字是文件名的一部分,请使用@fabiandre的注释。

for filename in sorted(os.listdir(directory)):
        print filename

^{}不保证目录内容的任何顺序。如果要对项目进行排序,只需使用内置的sorted函数(如果需要,使用适当的key函数)对它们进行排序。

相关问题 更多 >