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

Python实现批量重命名图片并保存至指定文件夹

解决图片批量重命名并复制到新文件夹的问题

嘿,我明白你的需求——要保留原文件夹里的图片,同时把重命名后的版本复制到另一个目录对吧?你的现有代码应该是用了os.rename(),这会直接修改原文件的名字,所以得换成复制操作才行。我帮你调整一下代码,完美实现你的需求:

修改后的完整代码

import os
import shutil
from tqdm import tqdm

# 原图片文件夹路径
source_path = './training_data/car/'
# 重命名后图片要保存的目标文件夹
target_path = './renamed_cars/'

def image_rename():
    # 确保目标文件夹存在,如果不存在就创建它
    os.makedirs(target_path, exist_ok=True)
    
    cnt = 1
    # 遍历原文件夹里的文件,同时用tqdm显示进度
    for img_name in tqdm(os.listdir(source_path)):
        # 只处理.jpg格式的图片,你可以根据需要添加其他格式(比如.png)
        if img_name.lower().endswith('.jpg'):
            # 拼接原文件的完整路径
            source_img = os.path.join(source_path, img_name)
            # 生成新的文件名
            new_img_name = f'Car.{cnt}.jpg'
            # 拼接目标文件的完整路径
            target_img = os.path.join(target_path, new_img_name)
            
            # 复制原文件到目标路径,同时用新名字保存
            shutil.copy(source_img, target_img)
            cnt += 1

if __name__ == '__main__':
    image_rename()

关键修改点说明

  • 新增了shutil模块的导入:这个模块专门用来处理文件复制、移动等操作,比直接用os模块更适合你的需求
  • 定义了target_path:指定重命名后的图片要保存的文件夹路径,你可以根据自己的需求修改这个路径
  • os.makedirs(target_path, exist_ok=True):自动创建目标文件夹,如果文件夹已经存在也不会报错,避免运行时的异常
  • 替换了文件操作逻辑:不再用os.rename()修改原文件,而是用shutil.copy()把原图片复制到目标文件夹,同时赋予新的文件名,这样原文件夹的图片完全不受影响
  • 增加了格式过滤:只处理.jpg格式的文件,避免把文件夹里的其他非图片文件(比如隐藏文件、配置文件)也一起处理,你可以根据需要添加.png、.jpeg等格式

运行这个代码后,原文件夹的图片会完好保留,所有重命名后的图片都会出现在你指定的target_path文件夹里~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:35:49