繁体   English   中英

unicode错误)“ unicodeescape”编解码器无法解码位置9-10中的字节

[英]unicode error) 'unicodeescape' codec can't decode bytes in position 9-10

我下面有简单分配的python代码。

import datetime
from datetime import date
failed_script_name="Z:\Python\FAILED_CODE"+str(date.today())+".txt"
fail_script_name="Z:\Python\FAIL_CODE"+str(date.today())+".txt"
need_script_name="Z:\Python\NEED_CODE_"+str(date.today())+".txt"

我在第三次作业中遇到错误。 如果我评论第三个任务,它的工作。 我没有错第三次作业,因为它与前两次相同

File "Z:\Python\test.py", line 5
    need_script_name="Z:\Python\NEED_CODE_"+str(date.today())+".txt"
                ^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in 
position 9-10: malformed \N character escape

反斜杠\\用作Python字符串文字中的转义字符。 转义字符用于表示字符,不能直接在源代码中键入。

如果在字符串文字中遇到\\ ,Python将通过查看下一个字符来确定要执行的操作。 例如, N表示Python,应将以下用大括号括起来的字符序列读取为Unicode字符的名称,然后将在该点插入该字符,例如

>>> print("\N{RIGHTWARDS ARROW}")
→

但是,在您的情况下,您会在\\N后面加上其他无法解释的内容。 因此出现错误信息。

对于\\\\之后的PF ,在Python中没有给它们指定特殊含义,并且在设计上,Python将在这种情况下将\\和后面的字符保留在字符串文字中。 因此,这些不会为您产生错误或任何问题:

>>> print("\P\F")
\P\F

一个人可以在一个字符串文字中正确地插入一个\\ ,之后跟另一个\\ ,这向Python表示您希望在字符串文字中使用一个反斜杠:

>>> print("\\N{RIGHTWARDS ARROW}")
\N{RIGHTWARDS ARROW}

另外,您可以通过在字符串文字前加上r使其成为原始字符串文字来关闭\\的特殊含义:

>>> print(r"\N{RIGHTWARDS ARROW}")
\N{RIGHTWARDS ARROW}

另请参阅Python文档,其中提供了转义序列及其解释的列表。

上面的答案假设使用Python3.x。 在Python 2.x中, \\N在通常的字符串中不会被赋予任何特殊的含义,即"\\Nonesense"仅在以u前缀使其成为unicode字符串文字u"\\Nonesense"才会产生错误。转义序列也适用于Python 2。

另请参阅Python 2.x文档。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM