You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中Pillow库Image.save()使用变量作为路径参数无法保存文件如何解决?

Python批量处理TIFF图片保存路径问题解决方案

你的代码存在以下问题,修正后即可正常将处理后的图片存入指定目录:

  • 对文件列表执行了不必要的files[1:]切片操作,会跳过源目录下的第一个文件,且没有过滤仅处理.tiff格式的文件,容易触发PIL读取非图片文件的异常
  • 没有拆分原文件的名称和后缀,直接拼接.jpeg会生成xxx.tiff.jpeg这类不符合要求的文件名
  • 硬编码字符串拼接路径容易因为文件名含特殊字符、路径首尾斜杠异常导致路径错误,需统一使用os.path.join处理所有路径拼接

修正后可运行代码

#!/usr/bin/env python3
from PIL import Image
import os

# 统一配置路径,避免重复硬编码出错
src_dir = "/home/dani/images"
dst_dir = os.path.join(src_dir, "opt/icons")

# 目标目录不存在则创建
if not os.path.exists(dst_dir):
    os.makedirs(dst_dir)

# 遍历源目录下所有文件
for filename in os.listdir(src_dir):
    src_path = os.path.join(src_dir, filename)
    # 跳过目录、仅处理tiff格式文件
    if os.path.isdir(src_path):
        continue
    # 不区分大小写处理.tiff/.tif后缀
    if not filename.lower().endswith(('.tiff', '.tif')):
        continue
    # 拆分原文件名和后缀,保留原文件名
    base_name = os.path.splitext(filename)[0]
    # 拼接目标保存路径
    save_path = os.path.join(dst_dir, f"{base_name}.jpeg")
    
    # 处理图片并保存
    im = Image.open(src_path)
    im.convert('RGB').rotate(-90).resize((128,128)).save(save_path)

验证方法

如果运行后仍有异常,可以在save代码前添加一行print(save_path),打印最终生成的保存路径,确认路径是否符合预期,快速定位路径拼接问题。

内容的提问来源于stack exchange,提问作者Adani7

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 17:15:02