zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    leetcode100
    leetcode237
    leetcode171
    leetcode122
    leetcode387
    2018-8-10-win10-uwp-如何打包Nuget给其他人
    2018-8-10-win10-uwp-如何打包Nuget给其他人
    2019-11-13-如何在国内发布-UWP-应用
    2019-11-13-如何在国内发布-UWP-应用
    2019-2-21-PowerShell-通过-WMI-获取设备厂商
  • 原文地址:https://www.cnblogs.com/xlpc/p/14015477.html
Copyright © 2011-2022 走看看