您好,登錄后才能下訂單哦!
Python 中 ‘unicodeescape' codec can't decode bytes in position XXX: trun錯誤解決方案
背景描述
今天在運用Python pillow模塊處理圖片時遇到一個錯誤
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
剛開始以為是圖片名字有中文,不識別,于是在python文件的頭部加上
#-*- coding:utf-8 -*-
但是加完這個還是報錯,然后我就把圖片的中文去掉還成英文,然后報錯,一臉懵逼呀。后來在stackoverflow 上找到了類似的錯誤,原來是圖片路徑寫的 有問題,錯誤代碼如下
im = Image.open('C:\Users\FrankYuan\Pictures\Camera Roll\WIN_20161010_08_51_57_Pro.jpg')
正確結果
im = Image.open('C:\\Users\\FrankYuan\\Pictures\\Camera Roll\\WIN_20161010_08_51_57_Pro.jpg')
或者
im = Image.open(r'C:\Users\FrankYuan\Pictures\Camera Roll\WIN_20161010_08_51_57_Pro.jpg')
抑或
im = Image.open(r'C:/Users/FrankYuan/Pictures/Camera Roll/WIN_20161010_08_51_57_Pro.jpg')
原因:
window 讀取文件可以用\,但是在字符串中\是被當作轉義字符來使用,所以'd:\a.txt'會被轉義成'd:\a.txt'這是正確路徑,所以不會報錯。而‘C:\Users\FrankYuan\Pictures\Camera Roll\WIN_20161010_08_51_57_Pro.jpg '中經過轉義之后可能就找不到路徑的資源了,例如\t可能就轉義成tab鍵了。
解決辦法
python在描述路徑時可以有多種方式,現列舉常見的三種
方式一:轉義的方式 'd:\\a.txt' 方式二:顯式聲明字符串不用轉義 'd:r\a.txt' 方式三:使用Linux的路徑/ 'd:/a.txt'
我強烈推薦第三種寫法,這在Linux和window下都是行的通的。
以上這篇Python 解決OPEN讀文件報錯 ,路徑以及r的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。