2016-05-16 98 views
1

我是Python中的新成员,我正在研究读取目录(仅包含文件)中的所有文件的脚本。 我知道我可以用这样的循环得到文件:Python - os.listdir的顺序

for file in os.listdir("my directory"): 

或使用本语法文件的列表:

files = [f for f in os.listdir("my directory ")] 

的问题是,我得到了一个完全随机的文件订购。我使用sort命令解决了我的问题,使我的列表排序,但是,我仍然想知道:

Python如何对listdir方法返回的文件进行排序?

回答

2

这个问题已经讨论了关于SO,例如,在这里: Nonalphanumeric list order from os.listdir() in Python

看起来像Python返回为使本地文件系统使用,你必须给他们之后进行排序。

+0

所以它不是完全随机的。这对我没有意义。如果该方法使用文件的日期或其在磁盘上的位置来返回列表,则更为合理。 –

+0

通常,文件系统在其内部结构上重用条目以存储新条目的数据。大部分他们返回的是(和'os.listdir()'给出的)实际上存储在设备中的数据。 – Piranna