python中關於\和/的使用說明
python中關於\和/的使用說明
1./和\的區分
/叫做斜槓,而\叫做反斜槓。名稱的得來是,\在直角座標系中為負斜率,因為叫做反斜槓。這個方法有助於記住和區分斜槓和反斜槓。
2.關於兩者對於路徑的表示
2.1 相關的歷史
在Linux系統中,路徑包括檔案的路徑和網址的路徑,都是使用斜槓來表示的。
我們平時較常使用的Windows系統,表示檔案的路徑卻是使用反斜槓\來表示的。為什麼呢?原因就是,在Windows系統中帶有的DOS,需要使用斜槓/來作用於命令的附加條件,就是用來加相關的引數的。而DOS中也要使用cd等來進行路徑的訪問,所以為了使兩者區分,就用反斜槓來表示路徑。但是其他的比如網址還是使用斜槓進行分割的。
2.2 python中的關於路徑的問題
為了相容Windows和Linux作業系統,就是跨平臺,python中支援使用\和/進行路徑的表示,甚至是混合使用兩種斜槓都是沒有問題。
但是有一個問題就是,在python或者其它語言中,反斜槓\具有轉義的作用。如果在路徑中出現了轉義符,python會預設這就是一個轉義字元。
path = 'E:\a\b\c\mytestpy'
從上面可以看出,python把\a和\b看成了是轉義符。那麼問題來,這就破壞了原來想要表示的路徑的意圖了。怎麼辦?下面給出三個解決辦法。
(1)使用反斜槓\來表示路徑
1)對於有轉義符的,在使用雙反斜槓,雙反斜槓就會被預設為反斜槓的意義。例如:
path = 'E:\\a\\b\c\mytestpy'
2)為了防止出現不知道哪個是轉義符或者對轉義符漏了多加反斜槓的情況,建議在路徑中都使用反斜槓。例如:
path = 'E:\\a\\b\\c\\mytestpy'
3)在字串前面加上r,表示字串就是原來的意思,不進行轉義。例如:
path = r'E:\a\b\c\mytestpy'
(2)使用斜槓來表示路徑
首先說明,在python中,使用斜槓和雙斜槓的效果是一樣的。為什麼這樣,可能是為了相容反斜槓的這種情況吧。還有增加r也可以,但是沒有必要了。
4)使用斜槓來表示。這個方法很穩妥,因為不會和轉義符混淆。這也是Linux系統操作者的習慣吧。例如:
path = 'E:/a/b/c/mytest.py'
(3)總結
由(1)和(2)得到的總結是:
使用單反斜槓表示路徑時,要特別的小心。可能因為沒有轉義符而不會出錯,但是有轉義符就會出錯。所以,如果是從Windows中複製過來的路徑,最好還是要在前面加上一個r以防萬一。
如果使用斜槓就不會有任何問題。
或者使用雙反斜槓,但是這樣會很麻煩,需要手動把反斜槓補上去。