每当我在原始字符串两边加上三引号时,就会发生以下错误:
SyntaxError:(unicode错误)“ unicodeescape”编解码器无法解码位置28-29中的字节:格式错误的\ N字符转义
我想知道为什么会这样,是否有任何方法可以避免这种情况。
我尝试过移动三引号以使其与代码的各个部分保持一致,但到目前为止没有任何效果。
这运行没有错误:
final_dir = (r'C:\Documents\Newsletters')
'''
path_list = []
for file in os.listdir(final_dir):
path = os.path.join(final_dir, file)
path_list.append(path)
'''
但这会产生一个错误:
'''
final_dir = (r'C:\Documents\Newsletters')
path_list = []
for file in os.listdir(final_dir):
path = os.path.join(final_dir, file)
path_list.append(path)
'''
答案 0 :(得分:1)
在'\N'
这样的字符串文字中,\N
具有特殊含义:
来自String and Bytes literals - Python 3 documentation的
\N{name}
在Unicode数据库中名为 name 的字符
例如,'\N{tilde}'
变为'~'
。
由于要引用代码,因此可能要使用原始字符串文字:
r'\N'
例如:
>>> r"""r'C:\Documents\Newsletters'"""
"r'C:\\Documents\\Newsletters'"
或者您可以逃脱反斜杠:
'\\N'
\D
不会发生此错误,因为它没有特殊含义。
感谢deceze实际上在评论中写了这个答案