glob.glob("**/*.jpg") 作为迭代器或延迟加载?

Tla*_*-ES 2 python

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

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

for file in glob.glob("**/*.jpg")[:1]:
    print(file)
Run Code Online (Sandbox Code Playgroud)

但我用

for model_folder in os.scandir(folder):
    for model_folder_content in os.scandir(model_folder):
        print(model_folder_content)
Run Code Online (Sandbox Code Playgroud)

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

这可能吗?

谢谢

bur*_*ran 5

您可以使用glob.iglob()

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

Return an iterator which yields the same values as glob() without actually
storing them all simultaneously.
Run Code Online (Sandbox Code Playgroud)