import random
import os
import math
import shutil
OldPath = "F:\\OldPath" #数据集最初的文件路径
TrainPath ="F:\\TrainPath" #训练集所在路径
for derName, subfolders, filenames in os.walk(OldPath):
random.shuffle(filenames) #打乱oldpath下的文件名顺序
num = len(filenames) #求文件名的长度
train = filenames[0:int(math.ceil(num*0.7))] #取70%数据集作为训练集,这里均为文件名
for i in train:
print(i)
OldFile = OldPath + "/" +i
TrainFile = TrainPath + "/" + i
shutil.move(OldFile, TrainFile) #把训练集给移到TrainPath文件夹下
任务: 有一堆数据集,现在随机取70%的数据集作为训练集,并移动到训练集文件夹下。
代码:如上。
注意:1.自动获得文件路径和文件名,用到os.walk(path)函数;2.打乱数据集,用random.shuffle(); 3. shutil模块,有移动,复制文件的函数,可直接调用; 4math.ceil()表示向上取整,因为数据集长度*0.7,可能不是整数;math.floor()向下取整。