如何解決Python讀取圖片路徑存在轉(zhuǎn)義字符的問題
普遍解決路徑中存在轉(zhuǎn)義字符的問題的方法
普遍解決轉(zhuǎn)義字符的問題,無非是以下這三種。
1.在路徑前添加r
直接在路徑前面加r,這種方法能夠使字符保持原始的意思。
比如下面這種:
path=r"D:\MindSpore\Dearui\source\ces\0AI.png"
2.將反斜杠“\”替換為正斜杠
path="D:\MindSpore\Dearui\source\ces/0AI.png"
3.將反斜杠“\”替換為雙反斜杠“\\”
path="D:\\MindSpore\\Dearui\\source\\ces\\0AI.png"
使用os來讀取圖片的路徑
這里我們采用了os來連接文件夾名與文件名。
具體方法如下:
paths=r"D:\MindSpore\Dearui\source\ces"
imgfile = []
file_list = os.listdir(paths)
for i in file_list:
newph = os.path.join(paths, i)
imgfile.append(newph)
print(imgfile)最后我們先直接打印出這個列表。
['D:\\MindSpore\\Dearui\\source\\ces\\0AI.png', 'D:\\MindSpore\\Dearui\\source\\ces\\AI2.png', 'D:\\MindSpore\\Dearui\\source\\ces\\AI3.png']
這里在用os時,可以看見是自動采用的是雙反斜杠,有效規(guī)避了轉(zhuǎn)義字符,但這里有涉及到了列表讀取機(jī)制的問題。
for f in imgfile:
print(f)一般我們是通過for循環(huán)這種方式來獲取列表中的圖片路徑,然而這里卻并非如我所想。
D:\MindSpore\Dearui\source\ces\0AI.png
D:\MindSpore\Dearui\source\ces\AI2.png
D:\MindSpore\Dearui\source\ces\AI3.png
使用for循環(huán)讀取,竟然將雙反斜杠變?yōu)榱藛涡备?,這也就導(dǎo)致了讀取路徑中存在了轉(zhuǎn)義字符,這里面可能涉及到讀取機(jī)制的問題,具體是什么這里就不探究了,下面我們來說下解決方案。
本文采取的方法
索性的是通過os,我們獲得的路徑是雙反斜杠,畢竟連'\'這種都屬于是轉(zhuǎn)義字符,我們還真沒什么辦法對它進(jìn)行變化。
newph = os.path.join(paths, i).replace("\\","/")這樣修改就可以完成對轉(zhuǎn)義字符的修改,并且通過for循環(huán)打印出來的值也是符合條件的。
for循環(huán)打?。?/p>
D:/MindSpore/Dearui/source/ces/0AI.png
D:/MindSpore/Dearui/source/ces/AI2.png
D:/MindSpore/Dearui/source/ces/AI3.png
列表打印:
['D:/MindSpore/Dearui/source/ces/0AI.png', 'D:/MindSpore/Dearui/source/ces/AI2.png', 'D:/MindSpore/Dearui/source/ces/AI3.png']
此函數(shù)也被我收錄進(jìn)了pyzjr中,需要下載0.0.19版本之后才可見。
pip install pyzjr==0.0.19
def getPhotopath(paths):
"""
* log:0.0.19以后修改了一個比較大的bug,使用os讀取的路徑是“\\”,本來是沒有問題的,
但如果使用列表循環(huán)讀取,居然變成了單斜杠。
* 功能:批量讀取文件夾下的圖片路徑
:param paths: 文件夾路徑
:return: 包含圖片路徑的列表
"""
imgfile = []
file_list = os.listdir(paths)
for i in file_list:
if i[0] in ['n', 't', 'r', 'b', 'f'] or i[0].isdigit():
print(f"Error: 文件名 {i} 開頭出現(xiàn)錯誤!")
newph = os.path.join(paths, i).replace("\\","/")
imgfile.append(newph)
return imgfile這里我添加了提示,可以指出可能是哪個文件出錯了,便于后續(xù)問題的查找,能夠手動修改的,其實是最后的,但如果你執(zhí)意要用也是沒有任何問題的。
到此這篇關(guān)于如何解決Python讀取圖片路徑存在轉(zhuǎn)義字符的問題的文章就介紹到這了,更多相關(guān)Python讀取圖片路徑內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
CentOS 7下安裝Python3.6 及遇到的問題小結(jié)
這篇文章主要介紹了CentOS 7下安裝Python3.6 及遇到的問題小結(jié),需要的朋友可以參考下2018-11-11
python+numpy按行求一個二維數(shù)組的最大值方法
今天小編就為大家分享一篇python+numpy按行求一個二維數(shù)組的最大值方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07
pytorch通過自己的數(shù)據(jù)集訓(xùn)練Unet網(wǎng)絡(luò)架構(gòu)
Unet是一個最近比較火的網(wǎng)絡(luò)結(jié)構(gòu)。它的理論已經(jīng)有很多大佬在討論了。本文主要從實際操作的層面,講解如何使用pytorch實現(xiàn)unet圖像分割2022-12-12

