使用Python的.read()函数读取文件时触发OSError[Errno 22]无效参数错误的问题
问题原因与解决方法
嘿,这个问题我太熟悉啦!你看错误信息里的路径 '\u202aD:\\Programing work\\Python projects\\AOTS\\wdutom.txt',里面的 \u202a 是一个不可见的左到右嵌入控制字符——大概率是你从Windows资源管理器里复制文件路径时,不小心把这个隐藏字符也带进来了。Windows有时候会在复制的路径开头加上这个控制字符,用来控制文本显示方向,但Python的open()函数可不认它,直接就判定路径无效了。
解决办法
你可以试试这两种方案:
- 手动重新输入路径:别复制粘贴,自己敲一遍完整的路径(记得保留原始的
r前缀,避免转义问题),比如:with open(r'D:\Programing work\Python projects\AOTS\wdutom.txt', encoding="utf-8") as f: ac = f.read() print(ac) - 清理路径中的特殊字符:如果不想手动输入,可以用字符串的处理方法去掉开头的控制字符,比如:
path = r'D:\Programing work\Python projects\AOTS\wdutom.txt' # 清理所有不可见的控制字符 clean_path = path.strip('\u202a\u202b') with open(clean_path, encoding="utf-8") as f: ac = f.read() print(ac)
验证小技巧
下次遇到类似问题,你可以先打印一下路径内容,看看有没有隐藏的特殊字符:
path = r'D:\Programing work\Python projects\AOTS\wdutom.txt' print(repr(path)) # 用repr()可以显示出所有隐藏字符
内容的提问来源于stack exchange,提问作者leo
相关产品推荐
相关产品推荐

