如何解決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)最后我們先直接打印出這個(gè)列表。
['D:\\MindSpore\\Dearui\\source\\ces\\0AI.png', 'D:\\MindSpore\\Dearui\\source\\ces\\AI2.png', 'D:\\MindSpore\\Dearui\\source\\ces\\AI3.png']
這里在用os時(shí),可以看見是自動(dòng)采用的是雙反斜杠,有效規(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)義字符,我們還真沒什么辦法對(duì)它進(jìn)行變化。
newph = os.path.join(paths, i).replace("\\","/")這樣修改就可以完成對(duì)轉(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
列表打?。?/p>
['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以后修改了一個(gè)比較大的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)錯(cuò)誤!")
newph = os.path.join(paths, i).replace("\\","/")
imgfile.append(newph)
return imgfile這里我添加了提示,可以指出可能是哪個(gè)文件出錯(cuò)了,便于后續(xù)問題的查找,能夠手動(dòng)修改的,其實(shí)是最后的,但如果你執(zhí)意要用也是沒有任何問題的。
到此這篇關(guān)于如何解決Python讀取圖片路徑存在轉(zhuǎn)義字符的問題的文章就介紹到這了,更多相關(guān)Python讀取圖片路徑內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python字符串中轉(zhuǎn)義字符的完全指南
- python中的轉(zhuǎn)義字符串問題
- Python中空格的轉(zhuǎn)義字符方式
- Python字符串的轉(zhuǎn)義字符
- 一篇文章搞懂python的轉(zhuǎn)義字符及用法
- Python對(duì)HTML轉(zhuǎn)義字符進(jìn)行反轉(zhuǎn)義的實(shí)現(xiàn)方法
- 詳解用Python處理HTML轉(zhuǎn)義字符的5種方式
- Python 轉(zhuǎn)義字符詳細(xì)介紹
- python處理html轉(zhuǎn)義字符的方法詳解
- Python轉(zhuǎn)義字符與原字符的實(shí)現(xiàn)示例
相關(guān)文章
使用Python Tkinter創(chuàng)建文件生成工具的操作步驟
我們將使用Python的Tkinter模塊創(chuàng)建一個(gè)簡(jiǎn)單的文件生成工具,這個(gè)工具可以用來創(chuàng)建Excel、文本、Python腳本和Word文檔等不同類型的文件,感興趣的朋友可以參考下2024-04-04
Python實(shí)現(xiàn)統(tǒng)計(jì)文本中的字符數(shù)量
這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)統(tǒng)計(jì)文本中的字符數(shù)量,包括中/英文字符、數(shù)字、特殊字符等,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-05-05
Pytorch之ToPILImage()不輸出圖片問題及解決
這篇文章主要介紹了Pytorch之ToPILImage()不輸出圖片問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
python編寫函數(shù)注意事項(xiàng)總結(jié)
在本篇文章里小編給大家分享了一篇關(guān)于python編寫函數(shù)注意事項(xiàng)總結(jié)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。2021-03-03
使用Python實(shí)現(xiàn)獲取網(wǎng)頁指定內(nèi)容
在當(dāng)今互聯(lián)網(wǎng)時(shí)代,網(wǎng)頁數(shù)據(jù)抓取是一項(xiàng)非常重要的技能,本文將帶你從零開始學(xué)習(xí)如何使用Python獲取網(wǎng)頁中的指定內(nèi)容,希望對(duì)大家有所幫助2025-03-03

