【发布时间】:2019-07-06 07:44:18
【问题描述】:
我有一个包含不同类型文件的文件夹。我只需要处理图像文件(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?
【问题讨论】:
-
glob.glob('tests/*.{jpg, png, JPG}')返回一个空列表 -
抱歉,好像只支持简单的shell风格的通配符
-
虽然你可以做类似
[x for x in glob.glob('*') if os.path.splitext(x)[1] in ['.txt', '.jpg', '.png'] ]:) -
@hansolo 这种打败 glob 的整个点...
-
IIRC glob 不区分大小写,因此至少您可以取消对“JPG”的检查,因为“jpg”会覆盖它。
标签: python python-3.x glob