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

Python中无法命名含特殊字符的文件?OSError报错解决咨询

解决Python创建含特殊字符文件名的报错问题

你碰到的OSError: [Errno 22]错误,核心原因是Windows系统禁止文件名包含|(半角竖线)这类特殊字符——除了|,< > : " / \ | ? *这些字符在Windows里都属于文件名非法字符;而Linux/macOS对文件名限制宽松,但/在所有系统里都不能用。

给你几个可行的解决办法:

  • 直接替换非法字符
    把文件名里的非法字符换成合法的(比如-、_),修改后的代码示例:

    with open('My filename: one - two.txt', 'a') as f:
        f.write('something')
    
  • 用全角特殊字符替代半角
    如果想保留类似竖线的视觉效果,可以用全角竖线¦代替半角|,全角字符在Windows文件名中是允许的:

    with open('My filename: one ¦ two.txt', 'a') as f:
        f.write('something')
    
  • 写个工具函数处理跨平台文件名
    如果需要兼容多系统,可以写一个自动过滤/替换非法字符的函数,避免手动修改:

    def sanitize_filename(filename):
        # 列出Windows下的所有文件名非法字符
        illegal_chars = '<>:"/\\|?*'
        for char in illegal_chars:
            filename = filename.replace(char, '-')
        return filename
    
    # 处理后得到安全的文件名
    safe_name = sanitize_filename('My filename: one | two.txt')
    with open(safe_name, 'a') as f:
        f.write('something')
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 21:45:36