我的目录中有超过100k个文件。我需要遍历它们并执行操作。我不想将整个文件列表加载到内存中,而是想同步遍历。用Python实现这一目标的最佳方法是什么?
编辑:
这个问题与我的问题不同,因为我不想一次将所有文件名都加载到内存中。
Pathlib.iterdir()提供了一个生成器来遍历目录,从而减少了内存消耗:
import sys
import pathlib
import os
path = '/cache/srtm'
pl = pathlib.Path(path).iterdir()
oslb = os.listdir(path)
print(type(pl))
print (type(oslb))
print ('pathlib.iter: %s' % sys.getsizeof(pl))
print ('os.listdir: %s' % sys.getsizeof(oslb))
印刷品:
<class 'generator'>
<class 'list'>
pathlib.iter: 88
os.listdir: 124920
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句