0

可能重复:
为什么我不能用 \ 结束原始字符串

为什么这个语法正确:

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

虽然这给出了错误

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

SyntaxError:扫描字符串文字时 EOL

4

4 回答 4

2

来自文档

当存在 'r' 或 'R' 前缀时,反斜杠后面的字符将不加更改地包含在字符串中,并且所有反斜杠都保留在字符串中。例如,字符串文字 r"\n" 由两个字符组成:一个反斜杠和一个小写的 'n'。字符串引号可以用反斜杠转义,但反斜杠保留在字符串中;例如,r"\"" 是由两个字符组成的有效字符串文字:反斜杠和双引号;r"\" 不是有效的字符串文字(即使原始字符串也不能以奇数个反斜杠结尾)。具体来说,原始字符串不能以单个反斜杠结尾(因为反斜杠会转义后面的引号字符)。

具体来说,原始字符串不能以单个反斜杠结尾(因为反斜杠会转义以下引号字符)

于 2013-01-06T09:13:39.637 回答
1

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

>>> import os
>>> os.path.join('C:','svn','google code')
'C:/svn/google code'
于 2013-01-06T09:18:51.373 回答
1

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

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

这应该工作:

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

>>> print(baseFilePath)
    C:\SVN\google code\
于 2013-01-06T09:09:57.837 回答
0

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

尝试这个:

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

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

于 2013-01-06T09:11:16.000 回答