在NTFS和Windows 7下,当目录中的文件数大于2,500,000个时,迭代遍历所有文件的最快方式是什么?所有的文件都位于顶层目录下。
目前我使用
for root, subFolders, files in os.walk(rootdir):
for file in files:
f = os.path.join(root,file)
with open(f) as cf:
[...]
但是这个进程非常非常慢。该进程已运行约一个小时,仍未处理任何文件,但内存使用量每秒仍增加约2KB。
os.walk
试图返回目录中所有文件的列表。在这种特殊情况下,我们必须找到另一种方法逐个获取文件名。glog.iglob
是这样一个函数,因为它返回一个迭代器。我已相应地修改了下面的答案。我很好奇看看它是否能简化事情... - Sylvain Leroux