Python-2.x: 列出没有 os.listdir() 的目录

Python-2.x: list directory without os.listdir()

使用os.listdir(some_dir),我们可以获取some_dir的所有文件,但有时,some_dir下会有20M的文件(没有子目录),这些是从 os.listdir().

到 return 20M 字符串的时间很长

(我们不认为将 20M 文件放在一个目录下是一个明智的选择,但它确实存在并且不受我的控制...)

是否有任何其他类似生成器的方法来执行这样的列表操作:一旦找到一个文件,yield它,我们就获取它,然后获取下一个文件。

我试过os.walk(),确实是一个生成器风格的工具,但是它也会调用os.listdir()做列表操作,而且不能很好地处理unicode文件名(UTF-8名称以及 GBK 名称)。

如果您有 python 3.5+,您可以使用 os.scandir() 请参阅 scandir

的文档