溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

通過Python批量處理套娃式文件夾的方法

發(fā)布時間:2020-08-26 09:47:43 來源:億速云 閱讀:167 作者:小新 欄目:編程語言

這篇文章主要介紹通過Python批量處理套娃式文件夾的方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

前言

在我對項目組的一些訓練圖像進行預(yù)處理的時候,發(fā)現(xiàn)處理的圖像是分好了類,在文件夾里的文件夾里,套娃式存儲的,所以對我批處理,以及按原文件夾規(guī)則進行存儲的時候,就會造成很大困擾
但通過下面幾個函數(shù)的結(jié)合,幫我順利的完成了一系列的預(yù)處理。

一、用不膩的芷山庫

1.安裝庫

pip安裝:

pip install zisan

2.getFiles函數(shù)

函數(shù)調(diào)用:

import zisan.FileTools as zf
file_path = 'C:/Users/xxx/Desktop/2016/Annotations'
whole_file = zf.getFiles(file_path)

圖片存儲在 :件夾2016 -> 文件夾Annotations ->子文件夾 -> 00000.png
通過getFiles函數(shù),可以將Annotations中的所有文件夾里的所有圖片路徑調(diào)出來

也就是說,getFiles函數(shù)是將文件夾里面的所有文件路徑調(diào)出來,不管中間有無子文件夾

二、其他函數(shù)

1.os.listdir函數(shù)

該函數(shù)調(diào)用后會返回路徑底下文件夾的名稱,以字符串的形式儲存在列表里

代碼如下:

import os
file_path = 'C:/Users/xxx/Desktop/2016/Annotations'
file_names = os.listdir(file_path)
print(file_names)

效果:

通過Python批量處理套娃式文件夾的方法

通過Python批量處理套娃式文件夾的方法

2.os.mkdir函數(shù)

代碼:

import os
new_file_path = 'C:/Users/xxx/Destop/2016/newfile'
os.mkdir(new_file_path)

用于創(chuàng)建新文件夾

三、運用

要求:處理Annotations文件夾中的每個子文件夾中的圖片,并按原本的規(guī)則存儲在newfile新文件夾里的相應(yīng)位置,命名規(guī)則如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里創(chuàng)建一個與子文件夾名稱相同的文件夾
  whole_pic = zf.getFiles(file_name) #用getFiles函數(shù)讀取子文件夾內(nèi)的圖片路徑
  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

這就是我解決文件夾處理問題的基本思路和流程,各個函數(shù)可以搭配使用,放入循環(huán)外或內(nèi)根據(jù)具體要求都有著不同的效果。

以上是通過Python批量處理套娃式文件夾的方法的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI