python实现复制文件到指定目录
这几天在做一个数据集,由于不是很熟悉Linux下的命令,所以特地用了强大的python来做。我之前有一个数据集但是我只要里面名称带有composite和normals的图片,所以找了网上的文章看到了用shutil.copyfile来实现的方法。
#-*-coding:utf-8-*-
importos,shutil
#shutil.copyfile应用,参数必须具体到文件名
defmycopyfile(srcfile,dstfile):
ifnotos.path.isfile(srcfile):
print("%snotexit!"%(srcfile))
else:
fpath,fname=os.path.split(dstfile)
ifnotos.path.exists(fpath):
os.makedirs(fpath)
shutil.copyfile(srcfile,dstfile)
#print("copy%s"%(srcfile,dstfile))
#这个是找到图片的实际地址
deffind_filepath(dir1_name,dir2_name,i,file_name=''):
file_path=os.path.join(dir1_name,dir2_name,str(i)+file_name+'.png')
returnfile_path
#这个是我自己的实际应用
if__name__=='__main__':
dir_name=['airplane_test','bottle_test','bunny_test','car_test','motorbike_test','suzanne_test','teapot_test']
obj=['_composite','_normals']
cnt=0
foriinrange(7):
direction=dir_name[i]
#print(direction)
forjinrange(400):
print(direction,j)
source1=find_filepath('intrinsic',direction,j,obj[0])#源地址
source2=find_filepath('intrinsic',direction,j,obj[1])#源地址
dst1=find_filepath('image2norm','testA',cnt)#目标地址
dst2=find_filepath('image2norm','testB',cnt)#目标地址
mycopyfile(source1,dst1)
mycopyfile(source2,dst2)
cnt+=1
值得注意的是,shutil.copyfile(srcfile,dstfile)里面srcfile和dstfile必须是文件名,不能是文件夹。具体应用可以参考上面的main。
如果想要复制文件夹下的全部文件而又不清楚文件的具体数目,可以采用以下os.listdir的方法列出该文件夹下所有文件的名称,
file_path='./resuls' dirs=os.listdir(file_path) fordirindirs: print(dir)
更多关于python文件操作专题,请查看:
python常用文件操作汇总
python文件夹操作汇总
python文件操作汇总
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。