从 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/

10-12 21:49