Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;Unicode错误“;“UnicodeScape”;编解码器可以';无法解码字节。。。无法在Python 3中打开文本文件_Python_Unicode_Python 3.x - Fatal编程技术网

&引用;Unicode错误“;“UnicodeScape”;编解码器可以';无法解码字节。。。无法在Python 3中打开文本文件

&引用;Unicode错误“;“UnicodeScape”;编解码器可以';无法解码字节。。。无法在Python 3中打开文本文件,python,unicode,python-3.x,Python,Unicode,Python 3.x,我正在Windows7机器上使用Python 3.1。俄语是默认系统语言,utf-8是默认编码 看看a的答案,我尝试使用“编解码器”模块来给我一点运气。这里有几个例子: >g=codecs.open(“C:\Users\Eric\Desktop\beeline.txt”,“r”,encoding=“utf-8”) SyntaxError:(unicode错误)'UnicodeScape'编解码器无法解码位置2-4中的字节:截断\uxxxxx转义(,第1行) >g=codecs.open(“C:

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

看看a的答案,我尝试使用“编解码器”模块来给我一点运气。这里有几个例子:

>g=codecs.open(“C:\Users\Eric\Desktop\beeline.txt”,“r”,encoding=“utf-8”)
SyntaxError:(unicode错误)'UnicodeScape'编解码器无法解码位置2-4中的字节:截断\uxxxxx转义(,第1行)
>g=codecs.open(“C:\Users\Eric\Desktop\Site.txt”,“r”,encoding=“utf-8”)
SyntaxError:(unicode错误)'UnicodeScape'编解码器无法解码位置2-4中的字节:截断\uxxxxx转义(,第1行)
>g=codecs.open(“C:\Python31\Notes.txt”,“r”,encoding=“utf-8”)
SyntaxError:(unicode错误)'UnicodeScape'编解码器无法解码位置11-12的字节:格式错误\N字符转义(,第1行)
>g=codecs.open(“C:\Users\Eric\Desktop\Site.txt”,“r”,encoding=“utf-8”)
SyntaxError:(unicode错误)'UnicodeScape'编解码器无法解码位置2-4中的字节:截断\uxxxxx转义(,第1行)

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

问题出在字符串上

"C:\Users\Eric\Desktop\beeline.txt"
在这里,
“C:\Users
…中的
\U
启动一个八字符的Unicode转义,例如
\U00014321
。在代码中,转义后面跟着字符“s”,这是无效的

您需要复制所有反斜杠:

"C:\\Users\\Eric\\Desktop\\beeline.txt"
或者在字符串前面加上
r
(以生成原始字符串):


我在Python3.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\
,所以当您想将此路径作为字符串参数传递到Python函数中时,您会得到一个Unicode错误,因为
\u
是Unicode转义。如果
\u
后面的下8个字符不是数字,则会产生错误

要解决这个问题,只需将反斜杠加倍:
C:\\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”关闭了失败的八字符Unicode转义(对于原始字符串)。(这有点过于简化,但如果您不关心Unicode,它会起作用)

希望这对别人有帮助

path = pd.read_csv(**'C:\Users\mravi\Desktop\filename'**) 这可以正常工作。

我有这个错误。 我有一个主python脚本,它从另一个第二个python脚本调用函数。 在第一个脚本的末尾,我有一个注释块,用
'''
指定。 我得到这个错误是因为这个注释代码块。 当我发现错误时,我重复了多次,以确保这就是错误,确实如此。
我仍然不确定原因。

哈哈哈…这是一个多么容易落入的陷阱,就像我刚刚遇到的一样。回答太棒了。我在将2.x代码移植到python3时在函数docstring中发现了这个错误。我在一段代码中使用了三重引号
'
注释,其中包含一个
\U
的原始字符串。即string在我尝试注释它之前没有给我一个错误。因此,双反斜杠方法可能是首选方法。我在字符串前面加上r,但它仍然给我错误。第三种解决方案(也是由@Adam Baylin Autuori提出的)是在路径中用“/”替换“\”。Python既能理解“\”(Windows样式)也能理解“/”两种格式(Unix风格)作为目录分隔符。@Wahnfrieden What?Python 2将在未来逐步淘汰,因此使用Python 3是有意义的,尽管它“缺乏”成熟度在大多数情况下,缺少库支持是一个很好的理由。由于Py3k特性被重新移植到Python 2.6和2.7,以后移植到3.x将很容易,而且您不会牺牲大量的库支持(如果您是新用户,并且无法正确预测您想要哪些库,这将特别危险).Python 3默认字符串文字是unicode字符串,因此
\u
处于活动状态,因此字符串文字
'\ufoo'
会引发
语法错误。在Python 2中,默认字符串文字不是unicode字符串,因此
\u
处于非活动状态,因此字符串文字
'\ufoo'
不会引发任何错误。相反,字符串literal
b'\ufoo'
在Python 3中不会引发任何错误,而字符串literal
u'\ufoo'
在Python 2中会引发错误。我建议您接受并访问。您的答案似乎不符合我们的质量标准。您需要详细说明为什么这会起作用,也许可以创建完整的代码示例。Welc请考虑编辑您的帖子,以添加更多关于您的代码所做的解释以及为什么它会解决这个问题。通常不会帮助OP理解他们的问题。请考虑编辑您的帖子,以添加更多关于您的代码所做的解释,以及为什么它会解决问题。 path = pd.read_csv(**'C:\Users\mravi\Desktop\filename'**) path = pd.read_csv(**r'C:\Users\mravi\Desktop\filename'**)