sin*_*ium 5 python glob python-3.x
我有一个包含不同类型文件的文件夹。我只需要处理图像文件(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')
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以glob.glob以更优化的形式使用(类似glob.glob('path/*.{'jpg', 'png', 'jpeg', 'JPG'}),或者是否有更简单的函数来使用它而不是glob?
您不能进行复杂的通配符通配符glob.glob('*.{JPG, png..}),因为如果您查看源代码,您会看到,
def glob(pathname):
"""Return a list of paths matching a pathname pattern.
....
"""
return list(iglob(pathname))
Run Code Online (Sandbox Code Playgroud)
然后如果你找到了它的源头iglob你就会看到,
def iglob(pathname):
....
....
dirname, basename = os.path.split(pathname)
# voila, here, our complex glob wildcard will certainly break, and can't be used :)
Run Code Online (Sandbox Code Playgroud)
因此,你只能使用简单的globbing glob:)