python指定路徑斜杠與反斜杠遇到的問題
指定路徑斜杠與反斜杠的問題
報(bào)錯(cuò):SyntaxError: (unicode error) ‘unicodeescape’ codec can’t decode bytes in position 2-3: truncated \UX
解決方法
這是python中指定路徑的問題,因?yàn)閃indows下的路徑都是反斜桿(如上圖所示),在很多編程語(yǔ)言中會(huì)不認(rèn)識(shí)"\"
字符,可能會(huì)把它識(shí)別成轉(zhuǎn)義字符(python就是把它當(dāng)成了轉(zhuǎn)義字符),如果按照Windows下的路徑輸入,代碼運(yùn)行就會(huì)出現(xiàn)上述的錯(cuò)誤
這個(gè)錯(cuò)誤有兩種解決方法:
1. 在路徑前面加一個(gè)r字母:讓路徑變成原始字符串,意思就是不讓\n
,\t
等有特殊含義的影響指定的路徑
imge=cv2.imread(r"C:\Users\Chengguo\Desktop\py_study\Alexnet\cifar_pictures\NO.0class6.jpg")
2. 在所有的反斜杠前面在加一條斜杠:意思是進(jìn)行斜杠轉(zhuǎn)義,目的也是排除\t
,\n
等的影響
imge=cv2.imread("C:\\Users\\Chengguo\\Desktop\\py_study\\Alexnet\\cifar_pictures\\NO.0class6.jpg")
這里注意一下,指定路徑的話最好還是直接用正斜杠(不論是相對(duì)路徑還是絕對(duì)路徑),避免出現(xiàn)上述的錯(cuò)誤
imge=cv2.imread("C:/Users/Chengguo/Desktop/py_study/Alexnet/cifar_pictures/NO.0class6.jpg")
字符串轉(zhuǎn)義序列(Escape Sequences)
對(duì)于字符串轉(zhuǎn)義序列,你需要再字符串中應(yīng)用它們,確認(rèn)自己清楚地知道它們的功能
正斜杠與反斜杠
歷史淵源
- UNIX操作系統(tǒng):設(shè)計(jì)了使用 ‘/’ 的路徑分割法
- DOS系統(tǒng):借鑒了UNIX的目錄結(jié)構(gòu),但由于在DOS系統(tǒng)中,斜杠 ‘/’ 已經(jīng)用來(lái)作為命令行參數(shù)的標(biāo)志,因此只能使用反斜杠 ‘\’
- Windows系統(tǒng):很多時(shí)候已經(jīng)沒有命令行參數(shù)的干擾,因此正斜杠與反斜杠大多數(shù)情況下可以互換
實(shí)例驗(yàn)證
桌面新建臨時(shí)Excel文件——test.xlsx,絕對(duì)路徑為‘C:\Users\liu19\Desktop\test.xlsx’
下面以五種路徑方式讀入python:
- 方式一:路徑中采用反斜杠,路徑前面加r
note:路徑前加r,防止程序?qū)?‘\’ 當(dāng)做轉(zhuǎn)義字符
- 方式二: 路徑中采用反斜杠,路徑前面不加r
- 方式三: 路徑中采用雙反斜杠,路徑前面不加r
note:與方式一中加r的作用一樣
- 方式四:使用正斜杠,路徑前面不加r
- 方式五:使用反斜杠,路徑前面加r,路徑中全采用小寫
小結(jié):
- Windows中 ‘\’ 為特殊字符,會(huì)對(duì)后面的內(nèi)容進(jìn)行轉(zhuǎn)義(\r、\t等),在路徑前面加上r之后,‘\’ 就變成了普通字符,不會(huì)再對(duì)后面的字符進(jìn)行轉(zhuǎn)義
- ‘\\’ 用第一個(gè) ‘\’ 取消第二個(gè) ‘\’ 的轉(zhuǎn)義作用
- 使用正斜杠也是有效路徑,且可以省去轉(zhuǎn)義的煩惱
- 路徑大小寫不敏感
總之,若只用 ‘\’ ,則一定要去除反斜杠的轉(zhuǎn)義功能,要么在整體路徑前面加r,要么使用雙反斜杠。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- python中路徑字符串斜杠替換方式
- python中的正斜杠與反斜杠實(shí)例驗(yàn)證
- python使用正則表達(dá)式匹配反斜杠\遇到的問題
- 一篇文章搞懂Python反斜杠的相關(guān)問題
- python正則表達(dá)式 匹配反斜杠的操作方法
- python如何輸出反斜杠
- Python字符串和正則表達(dá)式中的反斜杠(''\'')問題詳解
- Python中正反斜杠(‘/’和‘\’)的意義與用法
- python中的反斜杠問題深入講解
- 解決Python正則表達(dá)式匹配反斜杠''''\''''問題
- Python3.6-MySql中插入文件路徑,丟失反斜杠的解決方法
- 一文詳細(xì)介紹Python兩條斜杠 // 的作用和用法
相關(guān)文章
Python模擬鼠標(biāo)點(diǎn)擊實(shí)現(xiàn)方法(將通過實(shí)例自動(dòng)化模擬在360瀏覽器中自動(dòng)搜索python)
這篇文章主要介紹了Python模擬鼠標(biāo)點(diǎn)擊實(shí)現(xiàn)方法(將通過實(shí)例自動(dòng)化模擬在360瀏覽器中自動(dòng)搜索python),需要的朋友可以參考下2017-08-08python進(jìn)行TCP端口掃描的實(shí)現(xiàn)
這篇文章主要介紹了python進(jìn)行TCP端口掃描的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2018-12-12Python PyMySQL操作MySQL數(shù)據(jù)庫(kù)的方法詳解
PyMySQL是一個(gè)用于Python編程語(yǔ)言的純Python MySQL客戶端庫(kù),它遵循Python標(biāo)準(zhǔn)DB API接口,并提供了許多方便的功能,本文就來(lái)和大家簡(jiǎn)單介紹一下吧2023-05-05Python機(jī)器學(xué)習(xí)之PCA降維算法詳解
今天帶大家復(fù)習(xí)python機(jī)器學(xué)習(xí)的知識(shí)點(diǎn),文中對(duì)PCA降維算法介紹的非常詳細(xì),對(duì)正在學(xué)習(xí)python機(jī)器學(xué)習(xí)的小伙伴們有很好地幫助,需要的朋友可以參考下2021-05-05解決使用python print打印函數(shù)返回值多一個(gè)None的問題
這篇文章主要介紹了解決使用python print打印函數(shù)返回值多一個(gè)None的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2020-04-04Python爬蟲實(shí)現(xiàn)使用beautifulSoup4爬取名言網(wǎng)功能案例
這篇文章主要介紹了Python爬蟲實(shí)現(xiàn)使用beautifulSoup4爬取名言網(wǎng)功能,結(jié)合實(shí)例形式分析了Python基于beautifulSoup4模塊爬取名言網(wǎng)并存入MySQL數(shù)據(jù)庫(kù)相關(guān)操作技巧,需要的朋友可以參考下2019-09-09