sample(list,k):首先返回一个长度为k新列表,新列表中存放的是list中随机的k个唯一元素
下面介绍一个实例,这个实例也很实用,与其说介绍sample用法,不如这个实例的分享。
移动文件中部分数据,在做训练集与测试集很方便,或者其他有用到的地方。
import os,random,shutil
def moveFile(fileDir, traDir, rate):
''' 移动部分文件
:param fileDir: srcFileDir
:param traDir: targetFileDir
:param rate: move rate
:return:
'''
#获取原始数据路径
pathDir = os.listdir(fileDir)
fileNum = len(pathDir)
pickNum = int(fileNum*rate)
sample = random.sample(pathDir,pickNum) #用于截取列表指定长度的随机数,并不改变列表本身
for name in sample:
#shutil.copy(fileDir+name,traDir+name); #将文件/图片复制到目标文件
shutil.move(fileDir+name,traDir+name) #将文件/图片移动至目标文件
return
if __name__=='__main__':
fileDir = "C:/MyProect/DeepLearnProject/Lane_detection/lanenet-lane-detection-master/data/trainData/gt_image/"
traDir = "C:/MyProect/DeepLearnProject/Lane_detection/lanenet-lane-detection-master/data/trainData/testTargetImage/"
rate = 0.2
moveFile(fileDir,traDir,rate)