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

时间:2016-03-12 02:16:18

标签: python listdir

使用os.listdir(some_dir),我们可以从some_dir获取所有文件,但有时在some_dir下会有20M文件(没有子目录),这些文件会很长时间从os.listdir()返回20M字符串。

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

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

我已经尝试了os.walk(),它实际上是一个生成器风格的工具,但它也调用os.listdir()来执行列表操作,并且它无法很好地处理unicode文件名(UTF-8名称沿用GBK名称。)

1 个答案:

答案 0 :(得分:3)

如果你有python 3.5+你可以使用os.scandir()参见scandir的文档

相关问题