如果列出目录并读取其中的文件,与返回目录中所有文件的列表相比,yield 的性能在什么时候开始恶化?
在这里,我假设一个有足够的 RAM 来返回(可能很大)列表。
PS 我在注释中内联代码时遇到问题,所以我会在这里放一些例子。
def list_dirs_list():
# list version
return glob.glob(/some/path/*)
def list_dirs_iter():
# iterator version
return glob.iglob(/some/path/*)
在幕后,对 glob 的两个调用都使用 os.listdir ,所以看起来它们在性能方面是等效的。但是这个 Python 文档似乎暗示 glob.iglob 更快。