您好,登錄后才能下訂單哦!
利用Python如何實現批量處理套娃式文件夾?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
1.安裝庫
pip安裝:
pip install zisan
2.getFiles函數
函數調用:
import zisan.FileTools as zf file_path = 'C:/Users/xxx/Desktop/2016/Annotations' whole_file = zf.getFiles(file_path)
圖片存儲在 :件夾2016 -> 文件夾Annotations ->子文件夾 -> 00000.png
通過getFiles函數,可以將Annotations中的所有文件夾里的所有圖片路徑調出來
也就是說,getFiles函數是將文件夾里面的所有文件路徑調出來,不管中間有無子文件夾
二、其他函數
1.os.listdir函數
該函數調用后會返回路徑底下文件夾的名稱,以字符串的形式儲存在列表里
代碼如下:
import os file_path = 'C:/Users/xxx/Desktop/2016/Annotations' file_names = os.listdir(file_path) print(file_names)
效果:
2.os.mkdir函數
代碼:
import os new_file_path = 'C:/Users/xxx/Destop/2016/newfile' os.mkdir(new_file_path)
用于創建新文件夾
三、運用
要求:處理Annotations文件夾中的每個子文件夾中的圖片,并按原本的規則存儲在newfile新文件夾里的相應位置,命名規則如00000.jpg
import zisan.FileTools as zf import os import cv2 from skimage import io file_path = 'C:/Users/xxx/Desktop/2016/Annotations' new_file_path = 'C:/Users/xxx/Destop/2016/newfile' file_names = os.listdir(file_path) #獲取Annotations文件夾的子文件夾名稱 for i in file_names: #遍歷每個子文件夾名稱 Index = 0 file_name = file_path + '/' + i #巧妙運用+號得到改子文件夾的路徑 os.mkdir(new_file_path + '/' + i) #在newfile里創建一個與子文件夾名稱相同的文件夾 whole_pic = zf.getFiles(file_name) #用getFiles函數讀取子文件夾內的圖片路徑 for f in whole_pic: msk = io.imread(f) msk=cv2.cvtColor(msk,cv2.COLOR_RGBA2GRAY) msk[np.where(msk!=0)]=255 io.imsave(new_file_path + '/' + i + '/' + str("%05d" % Index) + '.jpg' , msk) #處理命名可直接+'.jpg'讓其以jepg形式存儲 Index += 1
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。