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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 03:05:30