使用os.listdir(some_dir)
,我们可以从some_dir
获取所有文件,但有时在some_dir
下会有20M文件(没有子目录),这些文件会很长时间从os.listdir()
返回20M字符串。
(我们认为将20M文件放在一个目录下是一个明智的选择,但它确实存在并且不在我的控制范围内......)
是否有任何其他类似于生成器的方法来执行这样的列表操作:一旦找到文件yield
,我们将获取它,然后获取下一个文件。
我已经尝试了os.walk()
,它实际上是一个生成器风格的工具,但它也调用os.listdir()
来执行列表操作,并且它无法很好地处理unicode文件名(UTF-8名称沿用GBK名称。)