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

Python调用os.rename重命名文件报FileNotFoundError错误咨询

运行报错信息
FileNotFoundError: [Errno 2] No such file or directory: 'C:/Users/user/Desktop/before.txt' -> 'C:/Users/user/Desktop/after.txt'
问题报错截图

问题报错截图

触发报错的原始代码
import os 

os.rename("C:\Users\user\Desktop\before.txt","C:\Users\user\Desktop\after.txt")
报错原因
  1. 基础路径转义问题:Windows路径使用的反斜杠 \在Python普通字符串中是转义标识符,原始代码中路径里的\U会被解析为Unicode字符转义起始标记、\b会被解析为退格符,最终Python实际识别的路径和你预期写入的路径完全不一致,自然无法定位到目标文件。
  2. 路径硬编码错误(调整转义写法后仍报错的核心原因):硬写的C:/Users/user/Desktop/路径和实际桌面路径不匹配,大概率是当前系统登录用户名不是user,或者系统盘用户目录做过迁移,实际桌面路径不是你写的这个地址。
  3. 文件名识别错误:Windows默认隐藏已知文件类型的扩展名,你视觉上看到的before.txt,实际完整文件名可能是before.txt.txt、before.docx等,和代码里写的文件名不匹配。
  4. 权限拦截:如果系统开启了受控文件夹访问,普通权限启动的Python进程没有桌面目录的写入权限,会被系统拦截操作,抛出文件不存在的异常。
排查解决方案
  • 不要硬编码桌面路径,用Python内置方法自动获取当前用户的真实桌面路径,从根源避免路径写错:
import os

# 自动获取当前用户桌面路径,无需手动写用户名
desktop = os.path.join(os.path.expanduser("~"), "Desktop")
src_file = os.path.join(desktop, "before.txt")
dst_file = os.path.join(desktop, "after.txt")

# 执行重命名前先校验源文件是否存在
print(f"源文件识别路径:{src_file}")
print(f"源文件是否存在:{os.path.exists(src_file)}")

os.rename(src_file, dst_file)
  • 打开Windows文件资源管理器的「查看」选项卡,勾选「文件扩展名」,必须开启文件扩展名显示,确认桌面上目标文件的真实全名和代码中写入的文件名完全一致,避免被系统默认的隐藏后缀设置误导。
  • 如果校验后源文件确实存在仍报错,关闭当前运行代码的IDE,右键选择IDE图标点击「以管理员身份运行」,重新执行代码即可绕过权限拦截。

内容的提问来源于stack exchange,提问作者발전하는남자

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 19:03:41