可能重复:
为什么我不能用 \ 结束原始字符串
为什么这个语法正确:
baseFilePath = r"C:\SVN\google code"
虽然这给出了错误
baseFilePath = r"C:\SVN\google code\"
SyntaxError:扫描字符串文字时 EOL
可能重复:
为什么我不能用 \ 结束原始字符串
为什么这个语法正确:
baseFilePath = r"C:\SVN\google code"
虽然这给出了错误
baseFilePath = r"C:\SVN\google code\"
SyntaxError:扫描字符串文字时 EOL
来自文档:
当存在 'r' 或 'R' 前缀时,反斜杠后面的字符将不加更改地包含在字符串中,并且所有反斜杠都保留在字符串中。例如,字符串文字 r"\n" 由两个字符组成:一个反斜杠和一个小写的 'n'。字符串引号可以用反斜杠转义,但反斜杠保留在字符串中;例如,r"\"" 是由两个字符组成的有效字符串文字:反斜杠和双引号;r"\" 不是有效的字符串文字(即使原始字符串也不能以奇数个反斜杠结尾)。具体来说,原始字符串不能以单个反斜杠结尾(因为反斜杠会转义后面的引号字符)。
具体来说,原始字符串不能以单个反斜杠结尾(因为反斜杠会转义以下引号字符)
使用os.path.join
,它可以避免这种情况,并注意使用适合操作系统的目录分隔符:
>>> import os
>>> os.path.join('C:','svn','google code')
'C:/svn/google code'
在第二种情况下,您正在转义引号\"
是 a 的转义序列"
要使用反斜杠,您应该使用双反斜杠\\
这应该工作:
baseFilePath = "C:\\SVN\\google code\\"
>>> print(baseFilePath)
C:\SVN\google code\
在这里,反斜杠转义了结尾"
。
如果要\
在字符串中使用,最安全的方法是转义反斜杠本身。
尝试这个:
baseFilePath = "C:\\SVN\\google code\\"
我推荐它而不是使用原始字符串。python doc中描述了需要转义的字符。