4

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

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

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

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

4

1 回答 1

3

如果你有 python 3.5+,你可以使用 os.scandir() 查看scandir的文档

于 2016-03-12T02:23:23.287 回答