高效的目录树遍历 Python

efficient directory tree walking in Python

我必须处理大量只有几层高的宽目录树,并且叶目录(而且只有叶目录)包含数千个文件(通过 NFS)。当我使用 os.walk() 时,叶节点似乎有很长的延迟,因为 os.walk() 正在生成目录中所有文件的列表。有没有一种解决方案可以一次给我一个文件(因为它遍历文件系统)而不是预先生成整个列表?

我对 Python 2.7 和 python 3.4 解决方案都感兴趣

你想要scandir(),它已添加到 3.5 的标准库中。 Python 包索引中的 2.7 和 3.4 可用。 (您应该可以使用 pip 或 easyinstall 来检索它。)