python字符串前面加上'r'的作用


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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM