由于制作训练集和验证集、测试集的需要,我需要从原始数据集中,随机取出(剪切)一定数量的图片。手动挑选毕竟不能保证随机性,且费时费力。
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)