使用os.rename重命名文件遇OSError: [WinError 123]错误求解决
修复os.rename的WinError 123文件名语法错误
问题根源
- 路径包含多余双引号:剪贴板获取的路径被双引号包裹(如
"C:\l-final_words.pdf"),Windows文件路径不需要引号,os.rename会将引号视为路径的一部分,触发语法错误。 - 路径拼接逻辑错误:直接截取原路径前40字符再拼接新文件名,会破坏合法路径结构;额外添加的
mxk变量(多余引号)进一步导致新路径格式失效。
修复方案
1. 移除路径中的双引号
用strip('"')清除剪贴板内容前后的引号,确保路径为合法格式:
m = root.clipboard_get().strip('"')
2. 用os.path模块正确拼接新路径
避免手动截取字符,通过os.path模块拆分目录和文件名,保证路径拼接的可靠性:
import os from tkinter import Tk root = Tk() root.withdraw() # 移除剪贴板路径的双引号 m = root.clipboard_get().strip('"') # 获取原文件所在目录,拼接新文件名 file_dir = os.path.dirname(m) new_file_name = "blank.pdf" new_path = os.path.join(file_dir, new_file_name) print(m, new_path) os.rename(m, new_path)
3. 删除多余变量
原代码中mxk、cc属于冗余变量,会给路径添加无效引号,直接删除即可。
修复后效果
原路径C:\l-final_words.pdf会被正确重命名为同一目录下的C:\blank.pdf,不会再触发WinError 123语法错误。
内容的提问来源于stack exchange,提问作者John Code
相关产品推荐
相关产品推荐

