Python如何将PIL处理后的图片保存到指定的不同目录
适配指定输出路径的批量图片缩放实现方案
核心调整点
- 提前定义独立的源图片目录、目标输出目录,避免路径硬编码混淆
- 新增目标目录自动创建逻辑,解决路径不存在导致的保存失败问题
- 修改保存路径拼接规则:不再复用原图片所在的目录路径,统一输出到指定的11子目录
- 搭配
with上下文管理器打开图片,自动释放图片资源,避免文件占用问题
调整后完整可运行代码
import os import glob from PIL import Image # 定义源图片目录、目标输出目录 source_dir = '/Users/mac/PycharmProjects/crop001/1' target_dir = '/Users/mac/PycharmProjects/crop001/1/11' # 自动创建目标目录,已存在时不会报错 os.makedirs(target_dir, exist_ok=True) # 匹配源目录下的所有jpg格式图片 files = glob.glob(os.path.join(source_dir, '*.jpg')) for f in files: with Image.open(f) as img: # 计算缩放尺寸:宽高均为原图的1/2 img_resize = img.resize((int(img.width / 2), int(img.height / 2))) # 提取原图片的纯文件名,不带原路径 _, filename = os.path.split(f) title, ext = os.path.splitext(filename) # 拼接最终保存路径,输出到目标目录下 save_path = os.path.join(target_dir, f"{title}_half{ext}") img_resize.save(save_path)
效果说明
- 运行代码后,源目录下的原始图片不会被改动
- 所有缩放完成的带
_half后缀的新图片,都会统一保存到/Users/mac/PycharmProjects/crop001/1/11/路径下 - 哪怕之前没有手动创建11文件夹,代码会自动完成目录创建,无需额外操作
内容的提问来源于stack exchange,提问作者DSC
相关产品推荐
相关产品推荐

