使用
os.listdir(some_dir)
,我们可以获取some_dir
下的所有文件,但有时,在some_dir
下可能会有20M个文件(没有子目录),这将需要很长时间从os.listdir()
返回20M个字符串。
(我们认为将20M个文件放在单个目录下不是一个明智的选择,但它确实存在且超出了我的控制...)
是否有其他类似生成器的方法来执行此类列表操作:一旦找到文件,就yield
它,我们获取它,然后获取下一个文件。
我尝试过os.walk()
,它确实是一个生成器样式的工具,但它也调用os.listdir()
来执行列表操作,并且无法很好地处理Unicode文件名(UTF-8名称以及GBK名称)。