"Unicode Error "unicodeescape" codec can't decode bytes... Cannot open text files in Python 3 [复制]"

23 浏览
0 Comments

"Unicode Error "unicodeescape" codec can't decode bytes... Cannot open text files in Python 3 [复制]"

这个问题已经在此处有了答案
如何在Python字符串字面值中编写Windows路径?

社区已经审核了是否重新打开这个问题去年并将其保持关闭:

原来的关闭原因未被解决

我正在使用Windows 7机器上的Python 3.1。俄语是默认系统语言,utf-8是默认编码。

看着先前问题的答案,我试图使用“codecs”模块来给我一些帮助。以下是一些示例:

>>> g = codecs.open("C:\Users\Eric\Desktop\beeline.txt", "r", encoding="utf-8")
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-4: truncated \UXXXXXXXX escape (<pyshell#39>, line 1)


>>> g = codecs.open("C:\Users\Eric\Desktop\Site.txt", "r", encoding="utf-8")
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-4: truncated \UXXXXXXXX escape (<pyshell#40>, line 1)


>>> g = codecs.open("C:\Python31\Notes.txt", "r", encoding="utf-8")
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 11-12: malformed \N character escape (<pyshell#41>, line 1)


>>> g = codecs.open("C:\Users\Eric\Desktop\Site.txt", "r", encoding="utf-8")
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-4: truncated \UXXXXXXXX escape (<pyshell#44>, line 1)

最后一个想法是,我认为它可能是因为Windows“翻译”了一些文件夹,例如“用户”文件夹,变成了俄语(尽管键入“users”仍然是正确的路径),所以我尝试了Python31文件夹。仍然没有运气。有什么想法吗?

admin 更改状态以发布 2023年5月20日
0
0 Comments

在Windows上的典型错误是因为默认用户目录是C:\user\,所以当你想将这个路径作为字符串参数传递到Python函数中时,你会遇到Unicode错误,只是因为\u是Unicode转义符。如果\u后面的8个字符不是数字,就会产生错误。

要解决这个问题,只需要将反斜杠加倍:C:\\user\\<\your_user>...。这将确保Python将单个反斜杠视为单个反斜杠。

0
0 Comments

问题出在字符串上

"C:\Users\Eric\Desktop\beeline.txt"

这里,\U"C:\Users... 是一个八个字符的 Unicode 转义字符,比如 \U00014321。在你的代码中,转义字符后面跟着的是一个无效的字符 's'。

你需要复制所有的反斜杠:

"C:\\Users\\Eric\\Desktop\\beeline.txt"

或在字符串前面加上 r (以生成原始字符串):

r"C:\Users\Eric\Desktop\beeline.txt"

0