如何用Python将文件夹内多张图片逐行存储为CSV文件并自动化处理
批量图片转CSV实现方案
以下是可直接运行的批量处理代码,在你原有单图处理逻辑的基础上增加了文件夹遍历、格式过滤的能力:
import os import pandas as pd import numpy as np import matplotlib.image as img # 配置项,运行前请修改为自己的本地路径 image_folder = "./images" # 存放待处理图片的文件夹路径 output_csv_path = "./gfgfile.csv" # 最终输出的CSV文件路径 support_suffix = {"jpg", "jpeg", "png"} # 支持的图片格式,可自行扩展 all_image_rows = [] # 遍历目标文件夹下的所有文件 for filename in os.listdir(image_folder): # 过滤非图片格式的文件 suffix = filename.split(".")[-1].lower() if suffix not in support_suffix: continue # 拼接得到图片的完整路径 full_img_path = os.path.join(image_folder, filename) # 复用原有单张图片处理逻辑 imageMat = img.imread(full_img_path) image_reshape = imageMat.flatten().reshape(-1, 1).T # 拼接高度、宽度和像素数组 image_row = np.array([[imageMat.shape[0], imageMat.shape[1]]]) image_row = np.append(image_row, image_reshape, axis=1) all_image_rows.append(image_row[0]) # 所有图片处理完成后统一写入CSV mat_df = pd.DataFrame(all_image_rows) mat_df.to_csv(output_csv_path, header=None, index=None)
注意事项
- 如需支持更多图片格式,直接在
support_suffix集合中添加对应后缀即可 - 若存在尺寸不一致的图片,较短的像素行会自动补NaN值
- 批量处理大量高分辨率图片时,CSV文件体积会非常大,建议提前预留足够磁盘空间
- 如果需要遍历图片文件夹下所有子目录中的图片,可将遍历逻辑替换为
os.walk实现 - 若处理的图片数量极多内存不足,可修改为逐行追加写入CSV的模式降低内存占用
内容的提问来源于stack exchange,提问作者rluq
相关产品推荐
相关产品推荐

