Python 为什么原始字符串(r-strings)不能以反斜杠结尾
在r-strings中,r代表原始字符串。字符串文字可以选择以字母‘r’或‘R’为前缀,这样的字符串被称为原始字符串,并使用不同的规则解释反斜杠转义序列。
当存在‘r’或‘R’前缀时,反斜杠后面的字符会原样包含在字符串中,所有的反斜杠都会保留在字符串中。例如,字符串文字r”\n”由两个字符组成:
- 一个反斜杠
- 一个小写字母’n’
字符串引号可以通过反斜杠进行转义,但反斜杠仍然会保留在字符串中。例如,r””””是一个有效的字符串文字,由两个字符组成:
- 一个反斜杠
- 一个双引号
r””不是一个有效的字符串文字。具体来说,原始字符串不能以单个反斜杠结尾。单个反斜杠后面跟着换行符会被解释为字符串的一部分,而不是作为换行符。
对于Windows路径名,Windows系统调用也接受正斜杠。
f = open("/mydir/demo.txt")
DOS命令的路径名 –
dir = r"\this\is\my\dos\dir" ""
dir = r"\this\is\my\dos\dir\ "[:-1]
dir = "\this\is\my\dos\dir"
极客笔记