我下面有简单分配的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
答案 0 :(得分:1)
反斜杠\
在Python字符串文字中用作转义字符。转义字符用于表示字符,不能直接在源代码中键入。
如果在字符串文字中遇到\
,python将通过查看下一个字符来确定要做什么。例如N
向Python表示,应将以下用大括号括起来的字符序列读取为Unicode字符的名称,然后将在该点插入该字符,例如
>>> print("\N{RIGHTWARDS ARROW}")
→
但是,在您的情况下,您在\N
后面加上其他无法解释的内容。因此出现错误消息。
在P
之后是F
和\
的情况下,在Python中没有给它们指定特殊的含义,在设计上,Python将在这种情况下同时保留\
和{字符串文字中的以下字符保持不变。因此,这些不会为您产生错误或任何问题:
>>> print("\P\F")
\P\F
一个人可以在字符串文字中插入\
,方法是在其后跟另一个\
,这向Python表示您希望在字符串文字中使用一个反斜杠:
>>> print("\\N{RIGHTWARDS ARROW}")
\N{RIGHTWARDS ARROW}
或者,您可以通过以下方式关闭\
的特殊含义:在字符串文字前加上一个r
,使其成为原始字符串文字:
>>> print(r"\N{RIGHTWARDS ARROW}")
\N{RIGHTWARDS ARROW}
Also see the Python documentation which has a list of escape sequences and their interpretation.
以上答案假定使用Python3.x。在Python 2.x中,\N
不会在普通字符串中被赋予任何特殊含义,即"\Nonesense"
仅在以u
为前缀使其成为unicode字符串文字时才会产生错误。 u"\Nonesense"
,其转义序列也适用于Python 2。