如何用Python批量处理repaired文件夹JPEG图片并覆盖原文件
批量处理repaired文件夹JPEG文件的修改脚本
核心修改点
- 新增
os模块做目录遍历,自动识别目录下所有JPEG格式文件(兼容.jpg/.jpeg及大小写变体后缀) - 修复原脚本的逻辑bug:原脚本中锐化、色彩增强的效果变量未回写到图片对象,实际处理时这两个步骤未生效
- 移除单文件硬编码路径,所有文件处理完成后直接按原文件名写入原路径,实现覆盖保存
完整可运行代码
import os from PIL import Image, ImageOps, ImageEnhance # 定义要处理的目标文件夹 TARGET_DIR = "repaired" # 支持的JPEG文件后缀 JPEG_SUFFIX = (".jpg", ".jpeg", ".JPG", ".JPEG") def process_single_image(img_path): """处理单张JPEG图片的逻辑""" # 打开图片 im = Image.open(img_path) # 裁掉17像素边框 im = ImageOps.crop(im, border=17) # 自动对比度调整 im = ImageOps.autocontrast(im, cutoff=1) # 锐度增强 im = ImageEnhance.Sharpness(im).enhance(3) # 色调分离 im = ImageOps.posterize(im, bits=8) # 色彩增强 im = ImageEnhance.Color(im).enhance(3) # 最高质量保存,覆盖原文件 im.save(img_path, quality="maximum") print(f"已处理完成: {img_path}") if __name__ == "__main__": # 遍历目标目录下所有文件 for filename in os.listdir(TARGET_DIR): # 筛选JPEG格式文件 if filename.endswith(JPEG_SUFFIX): full_path = os.path.join(TARGET_DIR, filename) # 跳过子目录,只处理文件 if os.path.isfile(full_path): process_single_image(full_path) print("所有JPEG文件处理完成")
注意事项
- 运行脚本前请先备份
repaired文件夹内的原始文件,处理后覆盖原文件无法自动回滚 - 脚本会自动跳过目录下的子文件夹、非JPEG格式文件,不会误修改其他内容
- 若你的JPEG文件有其他大小写后缀(比如.Jpe),可以自行加到
JPEG_SUFFIX元组中即可识别
内容的提问来源于stack exchange,提问作者Hanalog
相关产品推荐
相关产品推荐

