python:SyntaxError:EOL扫描字符串文字时
我在python:SyntaxError:EOL扫描字符串文字时,python,string,string-literals,Python,String,String Literals,我在s1=“一些很长的字符串………” 有人知道我做错了什么吗?你没有在行尾前放一个“ 如果要执行此操作,请使用“”: """ a very long string ...... ....that can span multiple lines """ (假设您的字符串中没有/想要换行符…) 这根绳子到底有多长 我怀疑从文件或命令行读取的行的长度是有限制的,因为行的末尾被切掉了,解析器会看到类似s1=“一些很长的字符串………(没有结尾”)的内容,从而抛出解析错误 通过在源中转义换行符,可以将长
s1=“一些很长的字符串………”
有人知道我做错了什么吗?你没有在行尾前放一个
“
如果要执行此操作,请使用“”
:
""" a very long string ......
....that can span multiple lines
"""
(假设您的字符串中没有/想要换行符…)
这根绳子到底有多长
我怀疑从文件或命令行读取的行的长度是有限制的,因为行的末尾被切掉了,解析器会看到类似s1=“一些很长的字符串………
(没有结尾”
)的内容,从而抛出解析错误
通过在源中转义换行符,可以将长线拆分为多行,如下所示:
s1="some very long string.....\
...\
...."
我遇到了这个问题——我最终发现原因是我在字符串中包含了
\
字符。如果您有这些错误,请使用\\
将其“转义”,它应该可以正常工作。我也收到了这个错误消息,对我来说,通过添加一个“\”解决了问题
结果是,我的长串被分成了大约八行,最后一行是“\”,其中一行缺少了一个“\”
PythonIdle没有指定这个错误所在的行号,但它红色突出显示了一个完全正确的变量赋值语句,这让我很生气。实际的变形字符串语句(多行加“\”)与高亮显示的语句相邻。也许这会帮助其他人。我也有这个问题,虽然这里有答案,但我想指出一个重要的问题 之后
/
不应该有空格。请注意在我的情况下,我的单引号字典字符串中有\r\n
。我用\\r
替换了\r
的所有实例,用\\n
替换了\n
的所有实例,它解决了我的问题,正确地返回了eval'ed dict中转义的换行符
ast.literal_eval(my_str.replace('\r','\\r').replace('\n','\\n'))
.....
我面临着类似的问题。我有一个包含Windows中文件夹路径的字符串,例如
C:\Users\
问题是\
是一个转义字符,因此要在字符串中使用它,您需要再添加一个\
不正确:C:\Users\
正确:
C:\\\Users\\
在我的情况下,我使用Windows,因此我必须使用双引号而不是单引号
C:\Users\Dr. Printer>python -mtimeit -s"a = 0"
100000000 loops, best of 3: 0.011 usec per loop
我在postgresql函数中遇到了这个错误。我有一个很长的SQL,为了更好的可读性,我用\将它分成了多行。然而,这就是问题所在。我删除了所有,并使他们在一行来解决这个问题。我使用的是pgadmin III。在我使用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
它起作用了
David您的变量(s1)
跨越多行。为了做到这一点(即您希望字符串跨越多行),必须使用三重引号(“”)
您可以尝试以下方法:
s = r'long\annoying\path'
以前的大多数答案都是正确的,我的答案与aaronasterling非常相似,你也可以做3个单引号
s1=''一些很长的字符串………''在这种情况下,三个单引号或三个双引号都可以使用! 例如:
"""Parameters:
...Type something.....
.....finishing statement"""
或
在访问任何硬盘目录时,我都遇到了同样的问题。 然后我就这样解决了
import os
os.startfile("D:\folder_name\file_name") #running shortcut
os.startfile("F:") #accessing directory
上图显示了一个错误和已解决的输出。下面的所有代码都是用Python 3.8.3测试的
最简单的方法就是使用三重引号。
单个:
long_string = '''some
very
long
string
............'''
或双倍:
long_string = """some
very
long
string
............"""
注意:三引号字符串保留缩进,这意味着
long_string = """some
very
long
string
............"""
及
甚至只是
long_string = """
some
very
long
string
............"""
是不同的。
标准库中有一个函数可以处理这个问题,尽管使用它是不可能的
您也可以在字符串中使用
\n
,位于单行:
long_string = "some \nvery \nlong \nstring \n............"
此外,如果字符串中不需要任何换行符(即换行符),可以在常规字符串中使用
\
:
long_string = "some \
very \
long \
string \
............"
在我的例子中,我忘记了字符串末尾的(“or”)例如“ABC”或“ABC”您确定它已正确关闭并且某处没有未替换的引号吗?未替换的引号会引发另一个解析错误。请注意,仅使用三个引号,我无意中遇到了四个,错误是关于连接字符串和变量的?它们被称为“转义字符”,这是非常标准的。你可以在字符串前面加一个
r
,以避免它们引起问题。这是最好的答案。也可以尝试s=r'long\perating\path\\\'
。我也有同样的问题,但这并不能解决问题。再加上两道斜杠,第一道斜杠就可以换成第二道斜杠。最后一条斜线仍然会引起问题。
long_string = """some
very
long
string
............"""
long_string = """
some
very
long
string
............"""
long_string = "some \nvery \nlong \nstring \n............"
long_string = "some \
very \
long \
string \
............"