如何从多个文件中,随机采样数据,存储到对应的新文件夹中

父文件夹中包含多个子文件夹,从每一个子文件夹中随机采样一定数量的样本,存入到新的文件夹中,新文件夹名与采样的子文件夹名相同

import os, random, shutil

def get_data(rootDir):#构造获取数据的函数
	for root, dirs, files in os.walk(rootDir):#从父文件夹路径下读取信息,root获取父文件夹名,dirs子文件夹名,所有子文件下的数据
		i = 0
		for dir1 in dirs:#遍历每一个子文件夹
			#print(dir1)
			pathDir = os.listdir(rootDir +'/' + dir1)#获得子文件夹路径
			#print(pathDir)
			filenumber = len(pathDir)#得到某一个子文件夹下的数据量
			i += 1
			print(i, ':', filenumber)#获得每个子文件夹下的数据量
			picknumber = int(50)#设定超参数,表示取样的数量
			sample = random.sample(pathDir, picknumber)#从某子文件夹中随机采样50个数据样本
			print(sample)#查看采样结果
			for name in sample:#遍历采样得到的所有数据
				move_path = "val_data/" + dir1#将采样得到的样本存入到新文件夹中
				if not os.path.exists(move_path):#如果文件夹不存在,新建
					os.makedirs(move_path)
				shutil.move(rootDir +'/' + dir1 + '/' + name, move_path + '/' + name)#将原文件夹中采样得到的数据移动到新文件夹中

if __name__=='__main__':
	rootDir = "/home/gpu1/9013/data/ImageNet/train"#父文件夹路径
	get_data(rootDir)
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值