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

在Google Colab中将JPG转PNG:如何让文件保存至原目录?

问题分析与解决方案

你的代码核心问题是没有使用完整文件路径:os.listdir()返回的只是文件名,不是完整路径,程序会在当前工作目录查找/操作文件,而非你指定的云端硬盘目录。另外注意:单纯修改文件名后缀不算真正的格式转换(JPG和PNG编码格式不同,直接改后缀可能导致图片无法正常打开),下面分两种场景给出修正方案:

场景1:仅修改文件名后缀(不推荐,仅改后缀未转格式)

import os

directory = r'/content/drive/MyDrive/images/images/' 
for filename in os.listdir(directory): 
    if filename.endswith('.jpg'): 
        # 拼接完整的原文件路径
        old_path = os.path.join(directory, filename)
        # 生成新文件名的完整路径
        prefix = filename.rsplit('.jpg', 1)[0]  # 用rsplit避免文件名中含多个.jpg的情况
        new_path = os.path.join(directory, f'{prefix}.png')
        # 重命名(移动到原目录下的新文件名)
        os.rename(old_path, new_path)  
    else: 
        continue

场景2:真正转换图片格式(推荐,确保格式兼容)

如果需要将JPG图片实际编码为PNG格式,使用PIL库处理:

import os
from PIL import Image

directory = r'/content/drive/MyDrive/images/images/' 
for filename in os.listdir(directory): 
    if filename.lower().endswith('.jpg'):  # 兼容大写后缀如.JPG
        old_path = os.path.join(directory, filename)
        prefix = filename.rsplit('.', 1)[0]
        new_path = os.path.join(directory, f'{prefix}.png')
        
        # 打开图片并保存为PNG格式
        with Image.open(old_path) as img:
            # 如果JPG是带透明度的(实际很少见),转成RGBA模式;否则直接保存
            if img.mode == 'RGB':
                img.save(new_path, 'PNG')
            else:
                img.convert('RGBA').save(new_path, 'PNG')
        # 可选:删除原JPG文件
        # os.remove(old_path)
    else: 
        continue

关键改动说明

  • 用os.path.join(directory, filename)拼接完整文件路径,确保程序能定位到云端硬盘中的目标文件
  • 新文件的路径同样拼接原目录,保证保存到原文件夹位置
  • 用rsplit('.', 1)分割文件名,避免文件名中包含多个.或.jpg子串导致的错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 09:15:31