作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个目录,其中包含超过 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/
我是一名优秀的程序员,十分优秀!