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
的文档
使用os.listdir(some_dir)
,我们可以获取some_dir
的所有文件,但有时,some_dir
下会有20M的文件(没有子目录),这些是从 os.listdir()
.
(我们不认为将 20M 文件放在一个目录下是一个明智的选择,但它确实存在并且不受我的控制...)
是否有任何其他类似生成器的方法来执行这样的列表操作:一旦找到一个文件,yield
它,我们就获取它,然后获取下一个文件。
我试过os.walk()
,确实是一个生成器风格的工具,但是它也会调用os.listdir()
做列表操作,而且不能很好地处理unicode文件名(UTF-8名称以及 GBK 名称)。
如果您有 python 3.5+,您可以使用 os.scandir() 请参阅 scandir
的文档