Unicode错误unicodeescape;编解码器不能解码字节…无法在Python 3中打开文本文件

我在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“翻译”的事实。一些文件夹,如“用户”;文件夹,变成俄语(尽管输入"用户"仍然是正确的路径),所以我在Python31文件夹中尝试了它。不过,运气还是不好。什么好主意吗?

1225712 次浏览

问题出在弦上

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

这里,\U"C:\Users…开始一个8字符的Unicode转义,例如\U00014321。在代码中,转义符后面跟着字符's',这是无效的。

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

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

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

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

我在python 3.2中遇到了同样的错误。

我有脚本电子邮件发送和:

csv.reader(open('work_dir\uslugi1.csv', newline='', encoding='utf-8'))

当我删除文件中的第一个字符uslugi1.csv工作正常。

参考openpyxl文档,您可以按照以下方式进行更改。

from openpyxl import Workbook
from openpyxl.drawing.image import Image


wb = Workbook()
ws = wb.active
ws['A1'] = 'Insert a xxx.PNG'
# Reload an image
img = Image(**r**'x:\xxx\xxx\xxx.png')
# Insert to worksheet and anchor next to cells
ws.add_image(img, 'A2')
wb.save(**r**'x:\xxx\xxx.xlsx')

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

要解决它,只需双反斜杠:C:\\user\\<\your_user>... 这将确保Python将单个反斜杠视为单个反斜杠

或者你可以将路径中的'\'替换为'/'。

我有同样的错误,只是卸载和安装numpy包,这工作!

'r'作为前缀效果很好,但它需要使用正确的语法。例如:

passwordFile = open(r'''C:\Users\Bob\SecretPasswordFile.txt''')

这里不需要\\ -保持可读性并且工作良好。

在Python 3中,我遇到了这个问题:

 self.path = 'T:\PythonScripts\Projects\Utilities'

产生以下错误:

 self.path = 'T:\PythonScripts\Projects\Utilities'
^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in
position 25-26: truncated \UXXXXXXXX escape

有效的修复方法是:

 self.path = r'T:\PythonScripts\Projects\Utilities'

似乎'\U'产生了一个错误,字符串前面的'r'关闭了8字符Unicode转义(对于原始字符串),这是失败的。(这有点过于简化,但如果你不关心unicode,它是可行的)

希望这对大家有所帮助

path = pd.read_csv(**'C:\Users\mravi\Desktop\filename'**)

错误是由于所提到的路径

在路径之前添加'r'

path = pd.read_csv(**r'C:\Users\mravi\Desktop\filename'**)

这样就可以了。

我有这个错误。 我有一个主要的python脚本,从另一个,第2,python脚本调用函数。 在第一个脚本的末尾,我有一个指定为''' '''的注释块。 我得到这个错误,因为这个注释代码块。 我重复错误多次,一旦我发现它,以确保这是错误,&这是。