【问题标题】:Python - order of os.listdir [duplicate]Python - os.listdir 的顺序 [重复]
【发布时间】:2016-09-11 18:30:05
【问题描述】:

我是 Python 新手,我正在编写一个脚本来读取目录中的所有文件(仅包含文件)。 我知道我可以使用这样的循环获取文件:

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

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

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

问题是我以完全随机的顺序获取文件。我使用sort 命令解决了我的问题,以便对我的列表进行排序,但是,我仍然想知道:

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

【问题讨论】:

    标签: python python-2.7 python-3.x directory


    【解决方案1】:

    这个问题已经在 SO 上得到解决,例如,这里: Nonalphanumeric list order from os.listdir() in Python

    看起来 Python 返回了本机文件系统使用的顺序,然后您必须对它们进行排序。

    【讨论】:

    • 所以它不是完全随机的。这对我来说没有意义。如果该方法使用文件的日期或其在磁盘上的位置来返回列表,则更合乎逻辑。
    • 通常文件系统会重用其内部结构上的条目来存储新结构的数据。他们返回的(和os.listdir() 提供的)大部分是实际上存储在设备中的数据。
    • 这是否意味着顺序是确定性的?或者文件系统的某些重新索引会产生不同的顺序?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-04
    • 1970-01-01
    • 2015-03-04
    • 2021-03-07
    相关资源
    最近更新 更多