1.选择每几个文件的前几个进行复制
对于一些文件我们需要选择每一定数量文件中的前几个进行复制,因此写了如下代码
import os import numpy as np import shutil files = '文件所在文件夹' target_files = '你的目标文件夹' def mycopyfile(srcfile, dstpath, ari): if not os.path.exists(dstpath): os.makedirs(dstpath) # 创建路径 shutil.copy(srcfile, target_files + ari) # 复制文件 print("copy %s -> %s"%(srcfile, target_files + ari)) name1 = os.listdir(files) name = np.array(name1) need_num = 6 # 每批图片的前几张图片 batch_size = 54 # 每批图片的数量 n = len(name) bi = np.floor(np.arange(n) / batch_size).astype(np.int) bn = bi[-1] + 1 for i in range(bn): ari = name[bi == i] for x in range(need_num): path = files + ari[x] mycopyfile(path, target_files, ari[x])
2.根据文件名称对文件进行选择复制
对于一些图片或者文件,我们需要将这些文件中每五个中的前两个复制到其他地方,自己写了以下代码
import os
import shutil
files = '文件所在的文件夹路径'
target_files = '你要复制的目标文件夹路径'
def mycopyfile(srcfile, dstpath, ari):
if not os.path.exists(dstpath):
os.makedirs(dstpath) # 创建路径
shutil.copy(srcfile, target_files + ari) # 复制文件
print("copy %s -> %s"%(srcfile, target_files + ari))
name1 = os.listdir(files)
for i in range(len(name1)): # 以下代码需根据你的文件名称进行修改
strs = name1[i].split('.')
for _, str in enumerate(strs):
if str != 'jpg':
name_str = str.split('-')
for x, char in enumerate(name_str):
if char in ('01', '03', "05"):
mycopyfile(files+name1[i], target_files, name1[i])
本文部分代码参考http://t.csdn.cn/1rHml