如何批量将指定目录下的图片文件存入Python字典?
批量将指定目录图片存入Python字典的可行方法
原代码问题分析
原代码存在几处关键错误导致无法正常运行:
- 错误调用列表
append方法:query = image.append()是错误写法,append是对列表对象调用的方法,无返回值,正确操作是query.append(image) - 未初始化
frames列表:代码中直接对frames调用append,但未先将其定义为列表 - 字典值不必要嵌套:
[query]会把列表再包裹一层,直接使用query即可
基础实现(存储图片路径)
如果只需要存储图片文件的路径,最简洁的写法如下:
import glob # 批量获取指定目录下的图片路径 query_paths = glob.glob('/content/drive/MyDrive/AI_FACIAL/QUERY/*.jpeg') frame_paths = glob.glob('/content/drive/MyDrive/AI_FACIAL/frames/*.png') # 构建目标字典 image_dict = { "Ali": query_paths, # 存储person1的查询图片路径 "Frames": frame_paths # 存储提取的帧图片路径 }
glob.glob()会直接返回所有匹配指定模式的文件路径列表,无需手动循环追加,适合处理大量文件。
进阶实现(存储图片内容)
如果需要读取图片内容存入字典,可借助PIL库实现:
import glob from PIL import Image def load_images(path_pattern): image_list = [] for path in glob.glob(path_pattern): try: # 打开图片并添加到列表 img = Image.open(path) image_list.append(img) except Exception as e: # 捕获加载失败的异常,避免程序中断 print(f"加载图片 {path} 失败: {str(e)}") return image_list # 加载两类图片 query_images = load_images('/content/drive/MyDrive/AI_FACIAL/QUERY/*.jpeg') frame_images = load_images('/content/drive/MyDrive/AI_FACIAL/frames/*.png') # 构建存储图片内容的字典 image_dict = { "Ali": query_images, "Frames": frame_images }
内容的提问来源于stack exchange,提问作者8kld
相关产品推荐
相关产品推荐

