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
相关产品推荐
相关产品推荐

