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

Python 2.7批量重命名目录文件失败,如何修复?

解决Python重命名文件时的WindowsError问题

问题根源

  1. 路径转义错误:Windows路径里的\在Python字符串中是转义符,直接写"C:\Users\..."会导致\U、\u等被解析为转义序列,实际指向的路径不正确。
  2. 文件路径不完整:os.listdir(path)返回的只是目标目录下的文件名(不含完整路径),直接用os.rename(i, ...)会在当前工作目录查找文件,而非指定的path目录,自然找不到目标文件。

修正后的代码

import os

count = 0
# 用原始字符串避免转义问题,也可以写成双反斜杠形式"C:\\Users\\user\\Downloads\\imageye\\data"
path = r"C:\Users\user\Downloads\imageye\data"

for filename in os.listdir(path):
    # 拼接文件的完整绝对路径
    old_full_path = os.path.join(path, filename)
    # 跳过目录(如果目标目录下存在子目录,避免误操作)
    if os.path.isdir(old_full_path):
        continue
    # 获取文件扩展名
    file_ext = filename.split('.')[-1]
    # 生成新文件名和完整路径
    new_filename = f"{count}.{file_ext}"
    new_full_path = os.path.join(path, new_filename)
    # 执行重命名
    os.rename(old_full_path, new_full_path)
    print(f"完成重命名:{filename} → {new_filename}")
    count += 1

关键修改说明

  • 路径定义优化:使用原始字符串r""包裹路径,彻底避免转义字符干扰;也可将单个反斜杠替换为双反斜杠\\。
  • 完整路径拼接:通过os.path.join()生成文件的完整绝对路径,确保os.rename能精准定位到目标文件。
  • 目录过滤:增加os.path.isdir()判断,跳过目录类条目,防止对非文件对象执行重命名操作。
  • 简洁的字符串格式化:用f-string生成新文件名,代码可读性更强(Python 3.6及以上版本支持)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 07:57:20