Python按条件替换图片文件名前两位字符的技术实现咨询
图片批量重命名解决方案
原代码存在的问题
- 仅处理
.jpg格式,未覆盖需求中的.png replace("11", "AA")会替换文件名中所有"11",而非仅开头前缀- 错误将字符串当作Image对象调用
save(),触发报错 - 未实现"33"→"BB"、"44"→"CC"的替换逻辑
- 路径处理不规范,未正确拼接新文件完整路径
正确实现代码
import os import glob # 定义前缀替换规则 prefix_rules = { "11": "AA", "33": "BB", "44": "CC" } # 匹配目标文件夹下的jpg和png文件 target_files = glob.glob("C/dataimg/*.jpg") + glob.glob("C/dataimg/*.png") for file_path in target_files: # 拆分文件目录与文件名 file_dir, file_name = os.path.split(file_path) # 获取文件名前两位前缀 current_prefix = file_name[:2] # 检查前缀是否在规则内,符合则重命名 if current_prefix in prefix_rules: new_file_name = prefix_rules[current_prefix] + file_name[2:] new_file_path = os.path.join(file_dir, new_file_name) os.rename(file_path, new_file_path) print(f"完成重命名: {file_name} → {new_file_name}")
代码说明
- 同时匹配
.jpg和.png格式文件,覆盖需求中的所有图片类型 - 用字典管理前缀替换规则,后续新增或修改规则只需调整字典内容
- 直接通过
os.rename操作文件系统,无需加载图片内容,高效且避免不必要的资源占用 - 严格只替换文件名开头的前缀,不会影响文件名中其他位置的字符
内容的提问来源于stack exchange,提问作者Vikash
相关产品推荐
相关产品推荐

