亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

如何解決Python讀取圖片路徑存在轉(zhuǎn)義字符的問(wèn)題

 更新時(shí)間:2023年07月24日 10:37:03   作者:夏天是冰紅茶  
這篇文章主要為大家詳細(xì)介紹了如何解決Python讀取圖片路徑時(shí)存在轉(zhuǎn)義字符的問(wèn)題,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以學(xué)習(xí)一下

普遍解決路徑中存在轉(zhuǎn)義字符的問(wèn)題的方法

普遍解決轉(zhuǎn)義字符的問(wèn)題,無(wú)非是以下這三種。

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來(lái)讀取圖片的路徑

這里我們采用了os來(lái)連接文件夾名與文件名。

具體方法如下:

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ī)制的問(wèn)題。

for f in imgfile:
    print(f)

一般我們是通過(guò)for循環(huán)這種方式來(lái)獲取列表中的圖片路徑,然而這里卻并非如我所想。

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ī)制的問(wèn)題,具體是什么這里就不探究了,下面我們來(lái)說(shuō)下解決方案。

本文采取的方法

索性的是通過(guò)os,我們獲得的路徑是雙反斜杠,畢竟連'\'這種都屬于是轉(zhuǎn)義字符,我們還真沒(méi)什么辦法對(duì)它進(jìn)行變化。

newph = os.path.join(paths, i).replace("\\","/")

這樣修改就可以完成對(duì)轉(zhuǎn)義字符的修改,并且通過(guò)for循環(huán)打印出來(lái)的值也是符合條件的。

for循環(huán)打印:

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讀取的路徑是“\\”,本來(lái)是沒(méi)有問(wèn)題的,
    但如果使用列表循環(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ù)問(wèn)題的查找,能夠手動(dòng)修改的,其實(shí)是最后的,但如果你執(zhí)意要用也是沒(méi)有任何問(wèn)題的。

到此這篇關(guān)于如何解決Python讀取圖片路徑存在轉(zhuǎn)義字符的問(wèn)題的文章就介紹到這了,更多相關(guān)Python讀取圖片路徑內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論