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

Python重命名含中文字符文件报错问题求助

解决Windows下含特殊字符的中文文件名重命名报错问题

问题根源

报错不是中文字符导致的,而是目标文件名里包含问号?——Windows系统的文件名不允许包含以下非法字符:/ \ : * ? " < > |,这才触发了WinError 123和Errno 22错误。

解决方案

1. 过滤文件名中的非法字符

先定义非法字符集合,将新文件名中的非法字符替换为合法字符(如下划线)或直接删除。

2. 用可靠的路径拼接方法

不要用字符串替换的方式处理路径,改用os.path模块的方法构造目标路径,避免路径拼接出错。

修改后的代码示例

import os
import shutil

# 定义Windows文件名非法字符
invalid_chars = '<>:"/\\|?*'
# 处理新文件名:替换非法字符为下划线
clean_filename = str(filename).translate(str.maketrans({c: "_" for c in invalid_chars}))
# 获取文件所在目录
file_dir = os.path.dirname(file)
# 构造目标路径
target_path = os.path.join(file_dir, f"{clean_filename}.{filemenu.get()}")

# 方法1:用os.rename重命名
os.rename(file, target_path)

# 或者方法2:用shutil.move
# shutil.move(file, target_path)

验证说明

将原目标文件名中的?替换后(比如改成今天 天气 很冷吗_.mp3),即可正常完成重命名操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 22:32:09