python:SyntaxError:EOL扫描字符串文字时

l--*_*''' 146 python string string-literals

我有上面提到的错误 s1="some very long string............"

谁知道我做错了什么?

aar*_*ing 194

你没有"在行结束前放置一个.

"""如果您想这样做,请使用:

""" a very long string ...... 
....that can span multiple lines
"""
Run Code Online (Sandbox Code Playgroud)

  • 并且小心地只使用三个引号,我偶然发现了四个并且错误出现了 (15认同)

小智 81

我有这个问题 - 我最终得出结论,原因是我\在字符串中包含了字符.如果你有任何这些,"逃避"他们,\\它应该工作正常.

  • @Leo它们被称为“转义字符”,这是非常标准的。您可以在字符串前放置`r`以避免它们引起问题。 (2认同)

小智 16

(假设你的字符串中没有/想要换行...)

这个字符串真的有多长?

我怀疑从一个文件或从命令行读取一行的时间有一个限制,并且因为该行的结尾被解析,所以解析器会看到类似的东西s1="some very long string..........(没有结尾")并因此抛出一个解析错误?

您可以通过在源中转义换行符来分割多行中的长行,如下所示:

s1="some very long string.....\
...\
...."
Run Code Online (Sandbox Code Playgroud)


Nic*_*ane 7

在我的情况下,我有\r\n我的单引号词典字符串.我替换了\rwith \\r\nwith的所有实例\\n并修复了我的问题,正确地返回了eval'ed dict中的转义换行符.

ast.literal_eval(my_str.replace('\r','\\r').replace('\n','\\n'))
  .....
Run Code Online (Sandbox Code Playgroud)


Ash*_*rni 7

我遇到了类似的问题。我有一个字符串,其中包含 Windows 中文件夹的路径,例如C:\Users\问题是这\是一个转义字符,因此为了在字符串中使用它,您需要再添加一个\

不正确: C:\Users\

正确的: C:\\\Users\\\


mad*_*313 5

我也遇到了这个问题,尽管这里有答案,但我想在 /不应该有空格之后强调这一点。要注意这一点


Zak*_*akS 5

你可以试试这个:

s = r'long\annoying\path'
Run Code Online (Sandbox Code Playgroud)

  • 这是最好的答案。也可以尝试 `s = r'long\annoying\path\\'`。 (3认同)