**python从一个文件里面提取名称,并从另外一个中匹配相同的元素,复制到一个新的文件中**
通常我们在只做数据集时,需要进行配对,大量的数据操作,用代码操作比较快,从一个文件夹里面找到所有的文件,根据文件名在另外一个文件夹里面进行匹配,最后复制到目标文件夹里面
代码
import os
import shutil
from glob import glob
def mycopyfile(srcfile, dstpath): # 复制函数
if not os.path.isfile(srcfile):
print("%s not exist!" % (srcfile))
else:
fpath, fname = os.path.split(srcfile) # 分离文件名和路径
if not os.path.exists(dstpath):
os.makedirs(dstpath) # 创建路径
shutil.copy(srcfile, dstpath + fname) # 复制文件
print("copy %s -> %s" % (srcfile, dstpath + fname))
src_dir = r'进行匹配的大量文件'
copy_dir=r'复制进去的地址'
dst_dir = r'源文件地址,获得匹配的文件名' # 目的路径记得加斜杠
#1、找到所有需要复制的名字
lst=os.listdir(copy_dir)
for i in lst:
#print(i)
#2、找到所有的源文件
src_file_list = os.listdir(src_dir)
for j in src_file_list:
src_file_list_img=os.listdir(src_dir+'\\'+j)
for m in src_file_list_img:
#print(i[17:].split('.')[0]+'='+m[17:].split('.')[0])
if i[17:].split('.')[0] == m[17:].split('.')[0]:
srcfile=src_dir+'\\'+j+'\\'+m
#3、复制
mycopyfile(srcfile, dst_dir+'\\') # 复制文件