python字符串前面加上'r'的作用
一、总结
一句话总结:
'r'是防止字符转义的 如果路径中出现'\t'的话 不加r的话\t就会被转义 而加了'r'之后'\t'就能保留原有的样子
二、python字符串前面加上'r'的作用
转自或参考:python字符串前面加上'r'的作用
https://www.cnblogs.com/YangtzeYu/p/7875634.html
在打开文件的时候open(r'c:\....')
加r和不加''r是有区别的
'r'是防止字符转义的 如果路径中出现'\t'的话 不加r的话\t就会被转义 而加了'r'之后'\t'就能保留原有的样子
在字符串赋值的时候 前面加'r'可以防止字符串在时候的时候不被转义 原理是在转义字符前加'\'
例:
s
=
r
'\tt'
print
(s)
Output:
'\tt'
s
=
'\tt'
print
(s)
Output:
' t'
在Python的string前面加上‘r’, 是为了告诉编译器这个string是个raw string,不要转意backslash '\' 。 例如,\n 在raw string中,是两个字符,\和n, 而不会转意为换行符。由于正则表达式和 \ 会有冲突,因此,当一个字符串使用了正则表达式后,最好在前面加上'r'。
三、Python字符串中的r前缀
转自或参考:Python字符串中的r前缀
https://www.cnblogs.com/chaoguo1234/p/9162476.html
在Python中,如果字符串的前面有r/R前缀,那么,就会禁用转义符\的功能:
>>>path = r'C:\new\text.dat' >>>pah 'C:\\new\\text.dat' >>>print(path) C:\new\text.dat >>>len(path) #虽然打印的形式不一样,但是字符数还是15个 15
上面的例子中,在交互环境下打印,Python将打印结果当成Python code来看待,因此,会有双斜杠;而print函数打印形式就比较友好。但是,无论采用哪种打印方式,字符个数是不变的,上述例子中,使用len函数查看,字符个数还是15个。
对于r前缀,还需要注意的一点是,如果字符串结束标志,即'或者"前面是一个\,即使使用了r前缀,Python仍然将它看成不合法的字符:
>>>S = r'a\' SyntaxError:EOL while scanning string literal >>>S = r'a\\' # 正确处理方式,仍需双斜杠\\ >>>S 'a\\\\' >>>print(S) a\\ >>>len(S) #每一个斜杠\都看成一个字符 3