从 Python 的文档中,os.listdir()
返回
我想知道的是,这个任意顺序是否总是相同/确定性的? (从一台机器到另一台机器,或通过时间,只要文件夹的内容相同)
编辑:我不想让它具有确定性,也不想使用它。我只是想知道(例如,订单取决于什么?)
最佳答案
为了了解发生了什么,我们可以检查可以找到 here 的 python 3.2 的底层实现。
我们将关注从 2574 行开始的 POSIX 部分。
在代码中定义:
DIR *dirp; // will store the pointer to the directory
struct dirent *ep; // will store the pointer to the entry
有两个重要的 POSIX 调用:
opendir
行的 2596 和 readdir
行的 2611。正如您可以从
readdir
手册页中读到的:因此,
readdir
读取目录中的下一个条目,但由文件系统实现来定义下一个条目。您可以阅读有关此主题的更多信息 here :关于python - os.listdir() 是确定性的吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31534583/