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

使用Python3批量重命名图片时遇Unicode转义错误求助

解决Python批量重命名图片的Unicode转义错误及功能实现

错误原因分析

  1. Unicode转义错误:Windows路径中的反斜杠\被Python解析为转义字符,比如\U会触发Unicode转义解析,但路径中的\U并非合法的Unicode转义序列,直接导致语法报错。
  2. 函数调用错误:定义的处理函数是rename_files,但调用时误写为rename,且错误使用*运算符,导致参数传递逻辑异常。
  3. 潜在代码缺陷:
    • 用file.split(".")[-1]提取后缀,若文件名含多个点(如image.v2.png)会得到错误后缀;
    • 手动拼接路径易出现分隔符错误,且未过滤子文件夹,可能误重命名目录;
    • 计数器未补零,文件名排序会出现混乱(如10排在2前面)。

修正后的完整代码

import os

def rename_files(directory, base_name):
    # 遍历目录,仅处理文件(跳过子文件夹)
    for counter, filename in enumerate(os.listdir(directory)):
        file_full_path = os.path.join(directory, filename)
        # 跳过子目录
        if os.path.isdir(file_full_path):
            continue
        # 安全提取文件后缀(支持含多个点的文件名)
        file_ext = os.path.splitext(filename)[1]
        # 生成带补零计数器的新文件名(适配1000+文件的排序需求)
        new_filename = f"{base_name}_{counter:04d}{file_ext}"
        new_full_path = os.path.join(directory, new_filename)
        # 执行重命名操作
        os.rename(file_full_path, new_full_path)
        print(f"已重命名:{filename} -> {new_filename}")

# 调用函数:用原始字符串(r前缀)处理Windows路径,避免转义问题
rename_files(
    r"C:\Users\Popin\Pictures\unprocessed art\9-24-22-batch\AI_PICS_Realistic",
    "Batch_9_24_22"
)

关键修正点说明

  • 路径转义处理:在路径字符串前加r标记为原始字符串,Python会忽略所有转义字符,直接按字面量解析路径;也可改用双反斜杠\\或正斜杠/替代单反斜杠。
  • 函数调用修正:正确调用定义好的rename_files函数,直接传递两个参数,移除错误的*运算符。
  • 文件过滤:通过os.path.isdir跳过子文件夹,避免误操作目录。
  • 安全后缀提取:使用os.path.splitext替代split("."),能准确处理含多个点的文件名。
  • 计数器格式化:用counter:04d将计数器格式化为4位带前导零的数字,确保文件名排序逻辑正确、格式统一。
  • 路径拼接:使用os.path.join自动适配不同操作系统的路径分隔符,避免手动拼接的错误。

额外优化建议

  • 重命名前建议先备份目标文件夹内的文件,避免意外错误导致数据丢失;
  • 若需按文件修改/创建时间排序重命名,可先对文件列表排序后再处理:
    # 按文件修改时间排序
    sorted_files = sorted(
        os.listdir(directory),
        key=lambda x: os.path.getmtime(os.path.join(directory, x))
    )
    for counter, filename in enumerate(sorted_files):
        # 后续重命名逻辑同上
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 03:35:34