“Unicode错误”独角兽编解码器无法解码字节…无法在Python3中打开文本文件

“Unicode错误”独角兽编解码器无法解码字节…无法在Python3中打开文本文件

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

看了看答案前一个问题,我尝试使用“编解码器”模块来给我一点运气。下面是几个例子:

>>> 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将一些文件夹(例如“用户”文件夹)“翻译”成俄语(尽管输入“用户”仍然是正确的路径),所以我在Python 31文件夹中试了一下。不过,没有运气。有什么想法吗?


森林海
浏览 919回答 3
3回答

蓝山帝景

问题在于字符串"C:\Users\Eric\Desktop\beeline.txt"这里,\U启动一个八个字符的Unicode转义,例如‘\U00014321’。在代码中,转义后面跟着字符‘s’,这是无效的。您需要复制所有反斜杠,或者在字符串前加上r(产生原始字符串)。

智慧大石

Windows上典型的错误,因为默认的用户目录是C:\user\<your_user>,因此,当您希望将此路径用作Python函数中的字符串参数时,您将得到一个Unicode错误,这仅仅是因为\u是Unicode转义。在此之后,任何字符(而不是数字)都会产生错误。要解决这个问题,只需将反斜杠翻一番:C:\\user\\<\your_user>...

繁花如伊

在Python 3中,我遇到了以下问题:&nbsp;self.path&nbsp;=&nbsp;'T:\PythonScripts\Projects\Utilities'产生此错误:&nbsp;self.path&nbsp;=&nbsp;'T:\PythonScripts\Projects\Utilities' &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^ &nbsp;SyntaxError:&nbsp;(unicode&nbsp;error)&nbsp;'unicodeescape'&nbsp;codec&nbsp;can't&nbsp;decode&nbsp;bytes&nbsp;in &nbsp;position&nbsp;25-26:&nbsp;truncated&nbsp;\UXXXXXXXX&nbsp;escape解决办法是:&nbsp;self.path&nbsp;=&nbsp;r'T:\PythonScripts\Projects\Utilities'看起来‘\U’产生了一个错误,字符串前面的‘r’关闭了失败的8个字符Unicode转义(对于一个原始字符串)。(这有点过于简单化了,但如果您不关心Unicode,它就会起作用)希望这能帮到别人
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python