最近在构造一个数据集,数据集很大,测试的时候不想把所有的数据都导入到文件夹下,只想导入一点。
这时候可以使用shutil中的copy函数完成某一个文件夹下文件的转移。可以通过data_num指定转移多少个文件(如果这个数字大于文件夹里的文件总数就没有意义了哈!)
另外,我们也可以通过len(os.listdir(label_dst_folder)))来获取文件夹内的文件数量来验证转移是否成功。
import os
from shutil import copy
label_src_folder = '/hy-tmp/data/label/'
pic_src_folder = '/hy-tmp/data/pic/'
label_dst_folder = '/code/unet_floorplan/data/label/'
pic_dst_folder = '/code/unet_floorplan/data/pic/'
data_num = 200
count = 0
for file in os.listdir(label_src_folder): #遍历文件夹下的所有文件
label_src_path = label_src_folder + file
pic_src_path = pic_src_folder + file
copy(label_src_path, label_dst_folder) # source必须指定一个具体的文件,destination只需要指定一个文件夹
copy(pic_src_path, pic_dst_folder)
count += 1
if count == data_num:
break
print('文件复制完成')
print(label_dst_folder + '下的文件个数为: ', len(os.listdir(label_dst_folder))) # 统计文件个数
print(pic_dst_folder + '下的文件个数为: ', len(os.listdir(pic_dst_folder)))