为什么这种语法正确无误:
baseFilePath = r"C:\SVN\google code"
虽然这给出了错误
baseFilePath = r"C:\SVN\google code\"
SyntaxError:扫描字符串文字时的EOL
答案 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。
中描述