版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hyl999/article/details/84887464
import os import numpy import random, shutil def moveSomeFileToNewDir(fileDir, tarDir): #sonDirPath = [] allDir = os.listdir(fileDir) # 列出指定路径下的全部文件夹,以列表的方式保存 for dir in allDir: # 遍历指定路径下的全部文件和文件夹 sonDirName = os.path.join(fileDir, dir) # 子文件夹的路径名称 if os.path.isdir(sonDirName): #sonDirPath.append(sonDirName) pathDir = os.listdir(sonDirName) # 取图片的原始路径 filenumber = len(pathDir) rate = 0.15 # 自定义抽取图片的比例,比方说100张抽15张,那就是0.15 picknumber = int(filenumber * rate) # 按照rate比例从文件夹中取一定数量图片 sample = random.sample(pathDir, picknumber) # 随机选取picknumber数量的样本图片 print(sample) for name in sample: oldDir = sonDirName +'\\'+ name newDir = tarDir + '\\' + dir isExists = os.path.exists(newDir) if not isExists: os.makedirs(newDir) newTarDir = tarDir +'\\'+dir +'\\'+ name print(oldDir, newTarDir) shutil.move(oldDir, newDir) fileDir = r"E:\all_data" #源图片文件夹路径 valDir = r'E:\val_data' #移动到验证集目录路径 moveSomeFileToNewDir(fileDir, valDir) testDir = r'E:\test_data' #移动到测试集目录路径 moveSomeFileToNewDir(fileDir, testDir)