基于python实现将一个文件夹中的图片移动到另一个文件夹
生活随笔
收集整理的這篇文章主要介紹了
基于python实现将一个文件夹中的图片移动到另一个文件夹
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
深度學習時,往往需要劃分訓練集、測試集以及驗證集。在之前,我已經介紹了利用keras中的ImageDataGenerator方法實現數據集的劃分。但是原文件夾中的數據,并沒有真正的劃分到兩個文件夾中。這次介紹的這個方法,可以按照一定的比例或者數量將數據從一個文件夾移動到另一個文件夾。
如下所示的文件夾:一共有24個子文件夾
每個文件夾中有500張左右的圖片。
1.按照比例劃分
import os, random, shutil def moveFile(fileDir, tarDir):pathDir = os.listdir(fileDir) # 取圖片的原始路徑filenumber = len(pathDir)rate = 0.2 # 抽取圖片的比例,自己定義即可picknumber = int(filenumber * rate) # 所抽取圖片的數量sample = random.sample(pathDir, picknumber) # 隨機選取picknumber數量的樣本圖片for name in sample:shutil.move(fileDir + name, tarDir + name)if __name__ == '__main__':fileDir = "E:/tmp/.keras/datasets/gestures/" # 源圖片文件夾路徑,這是一級文件夾,里面的二級文件夾中包含著圖片,如上圖所示。tarDir = "E:/tmp/.keras/datasets/gestures_test/" # 移動到新的文件夾路徑,這里也是一級文件夾,二級文件夾存在與否無所謂for oneDir in os.listdir(fileDir):onefileDir = fileDir + oneDir + "/" # 源文件夾的二級文件夾onetarDir = tarDir + oneDir + "/" # 移動文件夾的二級文件夾# 判斷移動文件夾中的二級文件夾是否存在,不存在則創建if not os.path.exists(onetarDir):os.makedirs(onetarDir)moveFile(onefileDir, onetarDir)劃分結果如下所示:
起初移動文件夾是沒有二級文件夾的,現已建好。
每個文件夾中有之前文件夾中的20%的數據。
2.按照數量劃分
其實按照數量劃分的原理與按照比例劃分的原理類似,只不過是按照原理劃分時,需要按照比例計算移動的數量,而按照數量劃分直接規定好了數量。
import os, random, shutil def moveFile(fileDir, tarDir):pathDir = os.listdir(fileDir) # 取圖片的原始路徑picknumber = 200 # 所抽取圖片的數量sample = random.sample(pathDir, picknumber) # 隨機選取picknumber數量的樣本圖片for name in sample:shutil.move(fileDir + name, tarDir + name)if __name__ == '__main__':fileDir = "E:/tmp/.keras/datasets/gestures/" # 源圖片文件夾路徑,這是一級文件夾,里面的二級文件夾中包含著圖片,如上圖所示。tarDir = "E:/tmp/.keras/datasets/gestures_test/" # 移動到新的文件夾路徑,這里也是一級文件夾,二級文件夾存在與否無所謂for oneDir in os.listdir(fileDir):onefileDir = fileDir + oneDir + "/" # 源文件夾的二級文件夾onetarDir = tarDir + oneDir + "/" # 移動文件夾的二級文件夾# 判斷移動文件夾中的二級文件夾是否存在,不存在則創建if not os.path.exists(onetarDir):os.makedirs(onetarDir)moveFile(onefileDir, onetarDir)劃分結果如下所示,之前已有103張圖片,再次劃分過200張,共303張:
參考博客
努力加油a啊
總結
以上是生活随笔為你收集整理的基于python实现将一个文件夹中的图片移动到另一个文件夹的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mac全选文字的快捷键_MACBOOK最
- 下一篇: endnote x9中文版安装教程(vi