Windows环境下Python重命名含中文文件报错,求无问题的重命名函数
Windows下Python处理中文文件夹重命名的解决方案
错误信息里的\xe6\x9c\xba\xe5\x8f\xb0\xe8\xb5\x84\xe6\x96\x99\xef\xbc\x89是中文「机台资料」的UTF-8字节编码,本质是Windows系统下路径编码转换导致的识别问题,os.rename和shutil.move本身支持中文路径,只需调整路径处理方式即可解决,以下是可行方案:
验证路径有效性
先确认目标文件夹确实存在,避免路径拼写、全半角符号或目录位置错误(比如部分系统的temp目录在C:\Users\<用户名>\AppData\Local\Temp而非根目录)。可以打印路径信息核对:import os old_path = r'C:\temp\weight机台资料' print("原始路径:", old_path) print("路径编码:", old_path.encode('utf-8'))若打印的编码与错误信息中的一致,说明路径本身无误,否则需修正路径输入。
使用Unicode路径前缀
在Windows中,给路径添加\\?\前缀可强制系统用Unicode处理路径,绕过默认编码转换,避免中文乱码导致的「找不到文件」问题:import os old_path = r'\\?\C:\temp\weight机台资料' new_path = r'\\?\C:\temp\weight' os.rename(old_path, new_path)用
shutil.move时同样适用:import shutil old_path = r'\\?\C:\temp\weight机台资料' new_path = r'\\?\C:\temp\weight' shutil.move(old_path, new_path)检查环境配置
- 确保使用Python 3.x版本(Python 2的编码问题更突出);
- 运行
import sys; print(sys.getdefaultencoding())确认默认编码为utf-8; - 若脚本无权限修改目标目录,右键以管理员身份运行Python脚本。
内容的提问来源于stack exchange,提问作者Mukkiman
相关产品推荐
相关产品推荐

