python:SyntaxError:扫描字符串文字时停产


Answers:


224

您没有"在行尾放置a 。

"""如果要执行此操作,请使用:

""" a very long string ...... 
....that can span multiple lines
"""

17
小心翼翼地只使用三个引号,我偶然遇到了四个引号,并且出现了错误
Oregano,2014年

1
串联字符串和变量呢?
丹尼尔·史普林格

92

我遇到了这个问题-我最终弄清楚了原因是我\在字符串中包含了字符。如果您有任何一个,请与他们“转义” \\,它应该可以正常工作。


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

17

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

这串真的多久了?

我怀疑从文件或从命令行读取的行的长度是有限制的,并且由于行的结尾被解析器截断,因此会看到类似s1="some very long string..........(不带结尾")的内容,从而引发解析错误?

您可以通过在源代码中转义换行符,将长行分成多行:

s1="some very long string.....\
...\
...."

8

在我的情况下,我\r\n在单引号中包含字典字符串。我取代的所有实例\r\\r\n\\n它固定我的问题,正确地返回在eval'ed字典逃脱换行符。

ast.literal_eval(my_str.replace('\r','\\r').replace('\n','\\n'))
  .....

6

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

不正确: C:\Users\

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


4

我也有这个问题,尽管这里有答案,但我想在/不应该有空白的地方对此做一个重要 说明。


2

我也有此确切的错误消息,对我来说,此问题已通过添加“ \”来解决

事实证明,我的长字符串在结尾处被分解成大约八行,并带有“ \”,但在一行上缺少“ \”。

Python IDLE没有指定此错误所在的行号,但是它以红色突出显示了完全正确的变量赋值语句,这使我不满意。实际变形的字符串语句(多行长为“ \”)与突出显示的语句相邻。也许这会帮助别人。



2

我在postgresql函数中遇到此错误。我有一个较长的SQL,使用\分成多行,以提高可读性。但是,这就是问题所在。我删除了所有内容,并将它们放在一行中以解决此问题。我正在使用pgadmin III。


2

就Mac OS X而言,我有以下陈述:

model.export_srcpkg(platform, toolchain, 'mymodel_pkg.zip', 'mymodel.dylib’)

我收到错误:

  File "<stdin>", line 1
model.export_srcpkg(platform, toolchain, 'mymodel_pkg.zip', 'mymodel.dylib’)
                                                                             ^
SyntaxError: EOL while scanning string literal

在我更改为:

model.export_srcpkg(platform, toolchain, "mymodel_pkg.zip", "mymodel.dylib")

有效...

大卫


2

您可以尝试以下方法:

s = r'long\annoying\path'

1
那是最好的答案。也可以尝试s = r'long\annoying\path\\'
shahar_m

1

variable(s1)跨多行。为了做到这一点(即您希望您的字符串跨越多行),必须使用三引号(“”“)。

s1="""some very long 
string............"""

1

在这种情况下,三个单引号或三个双引号都可以使用!例如:

    """Parameters:
    ...Type something.....
    .....finishing statement"""

要么

    '''Parameters:
    ...Type something.....
    .....finishing statement'''

0

以前的大多数答案都是正确的,我的答案与aaronasterling非常相似,您也可以用3个单引号s1 ='''一些很长的字符串.........'''


0

访问任何硬盘目录时,我都遇到了同样的问题。然后我以这种方式解决了。

 import os
 os.startfile("D:\folder_name\file_name") #running shortcut
 os.startfile("F:") #accessing directory

在此处输入图片说明

上图显示了错误和已解决的输出。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.