python实现复制文件到指定的目录下

本文介绍了一种使用Python批量筛选并复制包含特定关键字图片的方法。通过定义函数mycopyfile和find_filepath,实现了从指定文件夹中查找并复制名称中带有composite和normals的图片到新的目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这几天在做一个数据集,由于不是很熟悉Linux下的命令,所以特地用了强大的python来做。我之前有一个数据集但是我只要里面名称带有composite和normals的图片,所以找了网上的文章看到了用shutil.copyfile来实现的方法。

# -*- coding: utf-8 -*-

import os,shutil

#shutil.copyfile应用,参数必须具体到文件名
def mycopyfile(srcfile,dstfile):
    if not os.path.isfile(srcfile):
        print("%s not exit!" % (srcfile))
    else:
        fpath,fname=os.path.split(dstfile)
        if not os.path.exists(fpath):
            os.makedirs(fpath)
        shutil.copyfile(srcfile,dstfile)
        #print("copy %s" % (srcfile,dstfile))

#这个是找到图片的实际地址
def find_filepath(dir1_name,dir2_name,i,file_name=''):
    file_path=os.path.join(dir1_name ,dir2_name ,str(i)+file_name+'.png')
    return file_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
    for i in range(7):
        direction=dir_name[i]
        #print(direction)
        for j in range(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)
for dir in dirs:
    print(dir)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值