如何用Python基于文本文件批量重命名图片并保留.png后缀?
解决批量重命名图片丢失.png后缀的问题
问题场景
需要将C:/images文件夹中的图片按namelist.txt内的内容批量重命名,且保留.png后缀。现有脚本运行正常,但重命名后丢失了后缀,不符合预期效果。
修改后的Python脚本
import os def chngname(): os.chdir('C:/images') with open('C:/namelist.txt','r') as jabber: content = jabber.read().splitlines() # 仅筛选.png文件,避免误处理其他类型文件 director = [x for x in os.listdir() if x.endswith('.png')] director.sort() return content, director newname = chngname() os.chdir('C:/images') for id, file in enumerate(newname[1]): # 拼接新名称与.png后缀 new_file_name = f"{newname[0][id]}.png" os.rename(file, new_file_name)
关键改动说明
- 精准筛选目标文件:获取文件夹文件列表时,添加
if x.endswith('.png')判断,确保只处理图片文件,避免误操作其他类型文件。 - 强制保留后缀:重命名时将
namelist.txt中的名称与.png后缀拼接,生成完整的目标文件名,直接解决后缀丢失问题。
通用优化方案(适配多后缀场景)
如果后续需要处理不同后缀的图片,可提取原文件的后缀再拼接,兼容性更强:
for id, file in enumerate(newname[1]): # 提取原文件的后缀(如.png、.jpg等) _, ext = os.path.splitext(file) new_file_name = f"{newname[0][id]}{ext}" os.rename(file, new_file_name)
内容的提问来源于stack exchange,提问作者Oussama Rahim
相关产品推荐
相关产品推荐

