取消对os.listdir

问题描述

os.listdir()函数中,当我尝试获取文件时,它会自动对我的所有文件进行排序,而无需我提供任何排序​​功能

有没有办法获得没有排序的输出

解决方法

documentation说:

列表按任意顺序

没有办法对此进行“分类”。在您的情况下似乎已将其排序是偶然的,也可能不是偶然的。

对于CPython,listdir模块本身并未定义os函数,它只是从ntposix转发相应的函数模块,具体取决于您使用的操作系统。

作为示例,您可以在此处查看POSIX版本的源代码:

https://github.com/python/cpython/blob/5efb1a77e75648012f8b52960c8637fc296a5c6d/Modules/posixmodule.c#L3739

将条目添加到结果列表中的顺序是通过重复调用readdir函数来确定的,该函数不指定任何顺序,或者:

连续调用读取文件名的顺序 readdir()取决于文件系统的实现;不太可能 名称将以任何方式排序。


(我现在找不到Windows版本。)