python指定路徑斜杠與反斜杠遇到的問題
指定路徑斜杠與反斜杠的問題

報(bào)錯(cuò):SyntaxError: (unicode error) ‘unicodeescape’ codec can’t decode bytes in position 2-3: truncated \UX
解決方法

這是python中指定路徑的問題,因?yàn)閃indows下的路徑都是反斜桿(如上圖所示),在很多編程語言中會(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)用來作為命令行參數(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)文章
windows下添加Python環(huán)境變量的方法匯總
默認(rèn)情況下,在windows下安裝python之后,系統(tǒng)并不會(huì)自動(dòng)添加相應(yīng)的環(huán)境變量。此時(shí)不能在命令行直接使用python命令。今天我們就來看下,如何簡單快捷的在windows下添加Python環(huán)境變量2018-05-05
python?使用ctypes調(diào)用C/C++?dll詳情
這篇文章主要介紹了python?使用ctypes調(diào)用C/C++?dll詳情,文章首先通過導(dǎo)入ctypes模塊,加載C/C++?dll到python進(jìn)程空間展開主題相關(guān)內(nèi)容,需要的小伙伴可以參考一下2022-04-04
在Python中實(shí)現(xiàn)shuffle給列表洗牌
今天小編就為大家分享一篇在Python中實(shí)現(xiàn)shuffle給列表洗牌,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-11-11
關(guān)于sys.stdout和print的區(qū)別詳解
今天小編就為大家分享一篇關(guān)于sys.stdout和print的區(qū)別詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-12-12
Python自動(dòng)化測試?yán)鱯elenium詳解
Selenium是一種常用的Web自動(dòng)化測試工具,支持多種編程語言和多種瀏覽器,可以模擬用戶的交互行為,自動(dòng)化地執(zhí)行測試用例和生成測試報(bào)告。Selenium基于瀏覽器驅(qū)動(dòng)實(shí)現(xiàn),結(jié)合多種定位元素的方法,可以實(shí)現(xiàn)各種復(fù)雜的Web應(yīng)用程序的測試2023-04-04
Python實(shí)現(xiàn)運(yùn)行其他程序的四種方式實(shí)例分析
這篇文章主要介紹了Python實(shí)現(xiàn)運(yùn)行其他程序的四種方式,結(jié)合實(shí)例形式分析了Python執(zhí)行其他程序相關(guān)模塊與函數(shù)使用技巧,需要的朋友可以參考下2017-08-08
Python設(shè)計(jì)模式之代理模式實(shí)例詳解
這篇文章主要介紹了Python設(shè)計(jì)模式之代理模式,結(jié)合實(shí)例形式較為詳細(xì)的分析了代理模式的概念、原理及Python定義、使用代理模式相關(guān)操作技巧,需要的朋友可以參考下2019-01-01

