如何编写Python脚本读取两类图像文件夹生成带路径标签的CSV/JSON文件
可直接运行的实现代码
核心逻辑完全基于你已经熟悉的glob模块扩展,搭配Python内置的标准库完成格式文件生成,不需要额外安装依赖,也不需要改变原有读取逻辑的使用习惯。
前置说明
- 脚本默认和
bad_pictures、good_pictures两个类别文件夹处于同一运行目录 - 自动匹配两个文件夹下所有jpg格式图像(兼容大小写后缀名,比如
.JPG、.Jpg) - 自动将图像路径转换为系统可识别的绝对路径,避免路径相对位置变动导致的后续读取失败
- 生成的文件严格按照要求设置两个字段:CONTENT存完整图像路径、LABEL存对应类别值(bad/good)
CSV格式生成代码
直接运行即可在当前目录生成image_dataset.csv文件:
import os import glob import csv # 类别标签和对应文件夹的映射关系,路径有调整直接改这里即可 class_folder_map = { "bad": "bad_pictures", "good": "good_pictures" } dataset_entries = [] for label, folder_name in class_folder_map.items(): # 构造图像匹配规则,兼容大小写后缀 search_pattern = os.path.join(folder_name, "*.[jJ][pP][gG]") for img_path in glob.glob(search_pattern): # 获取图像的完整绝对路径 absolute_img_path = os.path.abspath(img_path) dataset_entries.append({ "CONTENT": absolute_img_path, "LABEL": label }) # 写入CSV文件 with open("image_dataset.csv", "w", newline="", encoding="utf-8") as csv_file: csv_writer = csv.DictWriter(csv_file, fieldnames=["CONTENT", "LABEL"]) csv_writer.writeheader() csv_writer.writerows(dataset_entries)
JSON格式生成代码
如果需要输出JSON格式,前面遍历收集图像路径和标签的逻辑和CSV版本完全一致,仅需将最后的写入逻辑替换为如下代码即可,运行后会生成image_dataset.json文件:
import json # 此处承接前面生成dataset_entries的代码逻辑 with open("image_dataset.json", "w", encoding="utf-8") as json_file: json.dump(dataset_entries, json_file, ensure_ascii=False, indent=2)
可调整的扩展点
- 如果需要匹配png等其他格式的图像,只需在search_pattern里新增对应后缀的匹配规则即可
- 如果需要过滤损坏的图像,完全可以在遍历到img_path的位置插入你已掌握的PIL图像打开逻辑,校验通过后再存入dataset_entries列表
- 如果类别文件夹不在脚本同目录,直接修改class_folder_map里的路径为文件夹的实际位置即可
内容的提问来源于stack exchange,提问作者Tazim Taz
相关产品推荐
相关产品推荐

