我有一个目录,其中包含超过 100k 个文件。我需要循环它们并执行操作。我不想将整个文件列表加载到内存中,而是想同步遍历。在 Python 中实现这一目标的最佳方法是什么?
编辑:
这个question与我的问题不同,因为我不想一次将所有文件名加载到内存中。
最佳答案
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
关于python - 如何一一获取目录下的文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58248087/