Python 解決OPEN讀文件報(bào)錯(cuò) ,路徑以及r的問(wèn)題
Python 中 ‘unicodeescape' codec can't decode bytes in position XXX: trun錯(cuò)誤解決方案
背景描述
今天在運(yùn)用Python pillow模塊處理圖片時(shí)遇到一個(gè)錯(cuò)誤
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
剛開始以為是圖片名字有中文,不識(shí)別,于是在python文件的頭部加上
#-*- coding:utf-8 -*-
但是加完這個(gè)還是報(bào)錯(cuò),然后我就把圖片的中文去掉還成英文,然后報(bào)錯(cuò),一臉懵逼呀。后來(lái)在stackoverflow 上找到了類似的錯(cuò)誤,原來(lái)是圖片路徑寫的 有問(wèn)題,錯(cuò)誤代碼如下
im = Image.open('C:\Users\FrankYuan\Pictures\Camera Roll\WIN_20161010_08_51_57_Pro.jpg')
正確結(jié)果
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 讀取文件可以用\,但是在字符串中\(zhòng)是被當(dāng)作轉(zhuǎn)義字符來(lái)使用,所以'd:\a.txt'會(huì)被轉(zhuǎn)義成'd:\a.txt'這是正確路徑,所以不會(huì)報(bào)錯(cuò)。而‘C:\Users\FrankYuan\Pictures\Camera Roll\WIN_20161010_08_51_57_Pro.jpg '中經(jīng)過(guò)轉(zhuǎn)義之后可能就找不到路徑的資源了,例如\t可能就轉(zhuǎn)義成tab鍵了。
解決辦法
python在描述路徑時(shí)可以有多種方式,現(xiàn)列舉常見(jiàn)的三種
方式一:轉(zhuǎn)義的方式 'd:\\a.txt' 方式二:顯式聲明字符串不用轉(zhuǎn)義 'd:r\a.txt' 方式三:使用Linux的路徑/ 'd:/a.txt'
我強(qiáng)烈推薦第三種寫法,這在Linux和window下都是行的通的。
以上這篇Python 解決OPEN讀文件報(bào)錯(cuò) ,路徑以及r的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python人工智能自定義求導(dǎo)tf_diffs詳解
這篇文章主要為大家介紹了python人工智能自定義求導(dǎo)tf_diffs詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07Pycharm打印大數(shù)據(jù)文件顯示不全的解決方法
這篇文章主要介紹了Pycharm打印大數(shù)據(jù)文件顯示不全的解決方法,昨晚寫了個(gè)小爬蟲,簡(jiǎn)單分析下發(fā)現(xiàn)可以修改請(qǐng)求的url,直接獲取所有目標(biāo)的數(shù)據(jù),想先打印在控制臺(tái)看看,發(fā)現(xiàn)打印的數(shù)據(jù)不全,所以本文記錄了一下解決方法,需要的朋友可以參考下2024-03-03對(duì)python中的for循環(huán)和range內(nèi)置函數(shù)詳解
下面小編就為大家分享一篇對(duì)python中的for循環(huán)和range內(nèi)置函數(shù)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04Python利用ElementTree模塊處理XML的方法詳解
ElementTree是python的XML處理模塊,它提供了一個(gè)輕量級(jí)的對(duì)象模,下面這篇文章就來(lái)給大家介紹了關(guān)于Python利用ElementTree模塊處理XML的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-08-08nohup后臺(tái)啟動(dòng)Python腳本,log不刷新的解決方法
今天小編就為大家分享一篇nohup后臺(tái)啟動(dòng)Python腳本,log不刷新的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01Python異常信息的不同展現(xiàn)方法總結(jié)
在日常開發(fā)的過(guò)程中,當(dāng)代碼報(bào)錯(cuò)時(shí),我們通常要不斷打印、閱讀traceback提示信息,來(lái)調(diào)試代碼,這篇文章介紹了如何實(shí)現(xiàn)一個(gè)Exception?Hooks,使得traceback模塊的提示信息更加精確;同時(shí)還介紹了一些第三方庫(kù),這些庫(kù)也提供了Exception?Hooks的功能2022-11-11詳解Python中的時(shí)間格式的讀取與轉(zhuǎn)換(time模塊)
這篇文章主要介紹了Python中的時(shí)間格式的讀取與轉(zhuǎn)換(time模塊),文末給大家介紹了python的時(shí)間獲取與轉(zhuǎn)化:time模塊和datetime模塊的相關(guān)知識(shí),需要的朋友可以參考下2023-05-05