使用一个环球网而不是多个环球网

2024-04-20 06:56:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个文件夹,里面有不同类型的文件。我只需要处理图像文件(jpg,png,jpeg,jpg,…)。为此,我使用glob.glob只获取带有“jpg”、“png”、。。。扩展。
问题是我必须多次使用glob.glob来获得所有图像:

import glob
images = glob.glob('tests/*.jpg') + glob.glob('tests/*.jpeg') + glob.glob('tests/*.png') + glob.glob('tests/*.JPG')  

有没有一种方法可以以更优化的形式使用glob.glob(类似于glob.glob('path/*.{'jpg', 'png', 'jpeg', 'JPG'}),或者有没有一个更简单的函数来代替glob?在


Tags: 文件方法图像import文件夹类型png图像文件
2条回答

使用pathlib

from pathlib import Path

extensions = ['.jpg', '.png', '.jpeg']
images = [x for x in Path('tests').iterdir() if x.suffix.lower() in extensions]

您不能像glob.glob('*.{JPG, png..})那样执行复杂的通配符globbing,因为, 如果你看一下你会看到的源代码

def glob(pathname):
    """Return a list of paths matching a pathname pattern.
    ....
    """
    return list(iglob(pathname))

如果你找到了iglob的来源,你就会看到

^{pr2}$

因此,您只能使用glob执行简单的globbing:)

相关问题 更多 >