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)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步