带有结尾反斜杠的字符串的错误

时间:2013-01-06 09:07:57

标签: python string

  

可能重复:
  why can’t I end a raw string with a \

为什么这种语法正确无误:

baseFilePath = r"C:\SVN\google code"

虽然这给出了错误

baseFilePath = r"C:\SVN\google code\"
  

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

4 个答案:

答案 0 :(得分:2)

docs

开始
  

当存在'r'或'R'前缀时,后跟一个字符   反斜杠包含在字符串中而没有更改,所有   反斜杠留在字符串中。例如,字符串文字   r“\ n”由两个字符组成:反斜杠和小写“n”。   字符串引号可以使用反斜杠转义,但反斜杠   留在字符串中;例如,r“\”“是一个有效的字符串文字   由两个字符组成:反斜杠和双引号; r“\”是   不是有效的字符串文字(即使是原始字符串也不能以奇数结尾)   反斜杠的数量)。具体来说,原始字符串不能以a结尾   单反斜杠(因为反斜杠会逃避以下引用   字符)。另请注意,单行反斜杠后跟换行符   解释为这两个字符作为字符串的一部分,而不是作为一个   延续线。

具体来说,原始字符串不能以a结尾 单反斜杠(因为反斜杠会逃避以下引用 字符)

答案 1 :(得分:1)

使用os.path.join,它可以避免这种情况,并负责使用适合操作系统的目录分隔符:

>>> import os
>>> os.path.join('C:','svn','google code')
'C:/svn/google code'

答案 2 :(得分:0)

在第二种情况下,您正在转义引用\""的转义序列

要使用反斜杠,您应该使用双反斜杠\\

这应该有效:

baseFilePath = "C:\\SVN\\google code\\"

>>> print(baseFilePath)
    C:\SVN\google code\

答案 3 :(得分:0)

这里,反斜杠会转义结尾" 如果你想在字符串中使用\,最安全的方法是逃避反斜杠本身。

试试这个:

baseFilePath = "C:\\SVN\\google code\\"

我推荐它而不是使用原始字符串。需要转义的字符在python doc

中描述