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

os.path.join未正确拼接目录与文件名,转换后的图片未存入目标文件夹

问题原因

路径拼接失效是os.path.join的特性导致的:如果传入os.path.join的参数中,靠后的参数是绝对路径,那么该参数之前的所有路径参数都会被直接丢弃。
你代码里的file变量存储的是完整绝对路径/home/sergey/Документы/008.jpeg,执行file[:-len(srcSfx)]操作后得到的是/home/sergey/Документы/008,依然是绝对路径,所以和save_dir拼接时save_dir直接被忽略,最终生成的路径还是原文件所在目录。

修复方案

你需要先从完整路径中提取纯文件名,再做后缀替换和路径拼接,修改后的代码参考如下:

import os
from PIL import Image

array = ['/home/sergey/Документы/008.jpeg']
srcSfx = '.jpeg'
destSfx = 'png'

save_dir = os.path.join(os.path.dirname(array[0]), "Converted_files")
os.makedirs(save_dir, exist_ok=True) # 加exist_ok=True避免目录已存在时报错

for file in array:
    if file.endswith(srcSfx):
        im = Image.open(file).convert("RGB")
        print(save_dir)
        # 先提取纯文件名,再替换后缀
        filename = os.path.basename(file)
        new_filename = filename[:-len(srcSfx)] + '.' + destSfx
        p = os.path.join(save_dir, new_filename)
        print(p)
        im.save(p, destSfx)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 03:15:02