python實現從一個文件夾下隨機抽取一定數量的圖片並移動到另一個文件夾


由於制作訓練集和驗證集、測試集的需要,我需要從原始數據集中,隨機取出(剪切)一定數量的圖片。手動挑選畢竟不能保證隨機性,且費時費力。故參考了這位博主的方法。

 1 ##深度學習過程中,需要制作訓練集和驗證集、測試集。
 2 
 3 import os, random, shutil
 4 def moveFile(fileDir):
 5         pathDir = os.listdir(fileDir)    #取圖片的原始路徑
 6         filenumber=len(pathDir)
 7         rate=0.1    #自定義抽取圖片的比例,比方說100張抽10張,那就是0.1
 8         picknumber=int(filenumber*rate) #按照rate比例從文件夾中取一定數量圖片
 9         sample = random.sample(pathDir, picknumber)  #隨機選取picknumber數量的樣本圖片
10         print (sample)
11         for name in sample:
12                 shutil.move(fileDir+name, tarDir+name)
13         return
14 
15 if __name__ == '__main__':
16     fileDir = "./source/"    #源圖片文件夾路徑
17     tarDir = './result/'    #移動到新的文件夾路徑
18     moveFile(fileDir)   

如果是要復制文件可參考以下完整代碼

 1 import os, random, shutil
 2 def copyFile(fileDir):
 3         pathDir = os.listdir(fileDir)    #取圖片的原始路徑
 4         filenumber=len(pathDir)
 5         rate=0.01    #自定義抽取圖片的比例,比方說100張抽10張,那就是0.1
 6         picknumber=int(filenumber*rate) #按照rate比例從文件夾中取一定數量圖片
 7         sample = random.sample(pathDir, picknumber)  #隨機選取picknumber數量的樣本圖片
 8         print (sample)
 9         for name in sample:
10                 shutil.copy(fileDir+name, tarDir+name)
11         return
12 
13 if __name__ == '__main__':
14     fileDir = "./source/"    #源圖片文件夾路徑
15     tarDir = './result/'    #移動到新的文件夾路徑
16     copyFile(fileDir)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM