python之os路徑被轉(zhuǎn)義的問題
python os路徑被轉(zhuǎn)義問題
以前常碰到字符串前面加r的情況,不加r有時候有問題有時候沒有,也就沒深究,這次就碰到一個問題搞了半天發(fā)現(xiàn)就是這里路徑被轉(zhuǎn)義了。
在python中反斜杠 \ 的功能是轉(zhuǎn)義,例如:\n表示換行,\t 表示水平制表符,也就是tab鍵。
在windows中 反斜杠 \ 也用來表示路徑分隔符。
例:
path = "K:\imageData\neg\4\044.bmp" print(path)
K:\imageData eg$.bmp
這里\n表示換行,所以輸出到K:\imageData就換行了,
- \4表示輸出兩個空格
- \0 表示八進制編碼的ASCII
- \0后面的兩位數(shù)就是8進制數(shù)表示的ASCII值
- \0后面的8進制數(shù)44表示為十進制是4*8+4=36
- 在ASCII表中正好對應(yīng)$符號。
解決方案
1.字符串前面加r可以防止字符串被轉(zhuǎn)義,字符串前加r是告訴編譯器把后面的內(nèi)容當成純字符串
path = r"K:\imageData\neg\4\001.bmp" print(path)
K:\imageData\neg\4\001.bmp
2.采用正斜杠不會被轉(zhuǎn)義 “/”
path = "K:/imageData/neg/4/001.bmp" print(path)
K:/imageData/neg/4/001.bmp
3.采用雙反斜線 “\\”
path = "K:\\imageData\\neg\\4\\001.bmp" print(path)
K:\imageData\neg\4\001.bmp
如果是在os.path.join()中生成的路徑,沒法顯示的用手改,可以配合split() 和 str.join()方法解決
import os folder = r"K:\imageData\neg\4" name = "001.bmp" path = os.path.join(folder,name) print("path:",path) path2 = "\\\\".join(path.split("\\")) print("path2:",path2) path3 = "/".join(path.split("\\")) print("path3:",path3)
path: K:\imageData\neg\4\001.bmppath2: K:\\imageData\\neg\\4\\001.bmppath3: K:/imageData/neg/4/001.bmp
split and rsplit的用法
split("\")把所有有 \ 的地方斷開,返回一個列表
path = r"K:\imageData\neg\4\001.bmp" path.split('\\')
['K:', 'imageData', 'neg', '4', '001.bmp']
rsplit("\",1)把最后出現(xiàn)"\"的地方斷開返回一個列表
path.rsplit('\\',1)
['K:\\imageData\\neg\\4', '001.bmp']
path.rsplit('\\',2)
['K:\\imageData\\neg', '4', '001.bmp']
rsplit()取負數(shù)時退化為split()方法
path.rsplit('\\',-1)
['K:', 'imageData', 'neg', '4', '001.bmp']
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python利用Selenium進行網(wǎng)頁自動化與動態(tài)內(nèi)容抓取操作
Selenium是一個自動化測試工具,它允許開發(fā)者模擬用戶的瀏覽器行為,執(zhí)行各種交互操作,下面就跟隨小編一起了解下如何使用Python和Selenium進行網(wǎng)頁自動化與動態(tài)內(nèi)容抓取吧2025-03-03python基礎(chǔ)知識之try...except...的詳細用法實例
在各種編程語言進行工作和學習的過程中,都會有一些錯誤異常,下面這篇文章主要給大家介紹了關(guān)于python基礎(chǔ)知識之try...except...的詳細用法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-08-08python腳本生成caffe train_list.txt的方法
下面小編就為大家分享一篇python腳本生成caffe train_list.txt的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04python實現(xiàn)定時壓縮指定文件夾發(fā)送郵件
這篇文章主要為大家詳細介紹了python實現(xiàn)定時壓縮指定文件夾發(fā)送郵件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-04-04Python訪問PostgreSQL數(shù)據(jù)庫詳細操作
postgresql是常用的關(guān)系型數(shù)據(jù)庫,并且postgresql目前還保持著全部開源的狀態(tài),這篇文章主要給大家介紹了關(guān)于Python訪問PostgreSQL數(shù)據(jù)庫的相關(guān)資料,需要的朋友可以參考下2023-11-11