python - glob.glob ("**/*.jpg") 作为迭代器还是延迟加载?

标签 python

我想知道是否可以使用 glob.glob("**/*.jpg") 来获取多个文件夹中的所有图像,但作为迭代器以避免填充内存

目前,我将以下代码与 glob 一起使用:

for file in glob.glob("**/*.jpg")[:1]:
    print(file)

但我用

for model_folder in os.scandir(folder):
    for model_folder_content in os.scandir(model_folder):
        print(model_folder_content)

第一种方法的问题是,如果有很多文件可以填满内存而失败,所以想法是使用 scandir,因为返回一个迭代器,但可以选择使用模式。

这可能吗?

谢谢

最佳答案

您可以使用 glob.iglob() :

glob.iglob(pathname, *, recursive=False)

Return an iterator which yields the same values as glob() without actually
storing them all simultaneously.

关于python - glob.glob ("**/*.jpg") 作为迭代器还是延迟加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69150956/

相关文章:

python - 如何检查文件内的所有文件夹和文件内的子文件夹是否存在特定字符串

python - Jupyter notebook 卡在 pdb 模式

python - 如何在不使用 sudo 的情况下安装 virtualenv?

python - 更新保存的 csv

python - 如何从列表中的键获取字典值?

python - 只有函数中的调用是通过的,但是函数仍然做了一些事情?

python - 如果变量不是 None 并且大于一行中的某个值,如何检查 python?

python - Python 上的 SHA-512 验证

python - 将 map 与查找和索引一起使用时 Python2 和 Python3 之间的区别

python - 无法将 os.system 与 'æ' 、 'ø' 或 'å' 一起使用