使用 os.listdir 读取文件的顺序?

Order in which files are read using os.listdir?

执行以下代码时,Python 循环遍历提供的目录中的文件是否有顺序?它是按字母顺序排列的吗?我如何着手建立这些文件循环的顺序,按日期 created/modified 或按字母顺序)。

import os
for file in os.listdir(path)
    df = pd.read_csv(path+file)
    // do stuff

根据文档:"The list is in arbitrary order"

https://docs.python.org/3.6/library/os.html#os.listdir

如果您想建立一个顺序(在本例中是按字母顺序),您可以对其进行排序。

import os
for file in sorted(os.listdir(path)):
    df = pd.read_csv(path+file)
    // do stuff

你问了几个问题:

  • 是否有 Python 循环文件的顺序?

不,Python 不强加任何可预测的顺序。 docs 说 'The list is in arbitrary order'。如果顺序很重要,你必须强制执行。实际上,文件返回的顺序与底层操作系统使用的顺序相同,但不能依赖于此。

  • 它是按字母顺序排列的吗?

可能不会。但即使是这样,你也不能依赖它。 (见上文)。

  • 如何建立订单?

for file in sorted(os.listdir(path)):