glob.glob函数返回图片地址
时间: 2024-12-28 21:29:26 浏览: 13
### 如何使用 Python `glob` 模块获取图片文件路径
#### 使用 `glob.glob()` 查找图片文件路径
为了查找特定类型的图片文件,可以利用 `glob.glob()` 函数配合相应的文件扩展名模式。例如要找到所有 `.jpg`, `.png`, 和 `.gif` 类型的图像文件:
```python
import glob
# 定义多个模式来匹配不同类型的图片文件
image_patterns = ['*.jpg', '*.jpeg', '*.png', '*.gif']
# 创建一个列表推导式来收集所有符合条件的图片路径
all_image_paths = []
for pattern in image_patterns:
all_image_paths.extend(glob.glob(f'./images/{pattern}'))
print(all_image_paths)
```
这段代码会遍历给定目录下的所有子目录,并返回与指定模式相匹配的所有图片文件路径[^1]。
如果希望一次性处理多种格式,则可以通过正则表达式的风格定义更复杂的模式字符串:
```python
import glob
# 同时支持 jpg, jpeg, png, gif 格式的单行写法
image_files = glob.glob('./images/*.{jpg,jpeg,png,gif}', recursive=True)
print(image_files)
```
注意这里使用了参数 `recursive=True` 来允许搜索嵌套更深一层或多层的子目录内的目标文件[^4]。
对于大量数据集或需要高效内存使用的场景下推荐采用 `iglob()` 方法替代 `glob()` ,因为前者不会立即加载整个结果集合到内存中而是按需生成每一个匹配项:
```python
import glob
gen = glob.iglob('**/*.jpg', recursive=True) # 只寻找.jpg结尾的照片
for file_path in gen:
print(file_path)
```
上述例子展示了怎样通过通配符 `**/` 实现跨多级子目录检索功能的同时仅占用较少资源完成相同任务[^2].
阅读全文