python指定图像批量复制-shutil模块

需求:需要将数据库中,实验需要的一部分图像数据原样复制到另一个文件夹,方便上传到服务器做些小实验。
已知: 数据集的存在路径、 实验所需图像的子路径名以及文件名(这个存储为CSV文件了,在我之前的博客中写过怎样按需求划分并保存)
任务:将数据集的存在路径改为自己给定的路径,同时要分隔出图像子路径,若不存在,则需要重新创建。

数据集存在路径Mar这个:
在这里插入图片描述
同时总路径下,里面又分成这个样子,这就是子路径名,子路径名下就直接是图像的文件名了:
在这里插入图片描述

同时,CSV文件中是这么存储的。
在这里插入图片描述
等分析完,这个事就好办了。

shutil库

这里,我原本的想法一直是用PIL.Image, CV库等读入图像,然后再高分辨率写入指定文件夹,不过这样子很麻烦,而且写入的图像会有失真,跟原图像不一样大了哎,直到后来想起了shutil库,恩,思想之前走了弯路,这么方便的复制粘贴竟然忘记。。

使用方法就不写了,具体想用的功能自行查看:Python shutil模块

代码:

import shutil
import csv, os, cv2

#这里循环10次读CSV文件,是因为之前分了10个CSV分别存储的,若需求只有一个,就不用循环了
for j in range(1,11):
    sf = r"D:\40000\arousal/file" + str(j) + ".csv"
    files = csv.DictReader(open(sf, "r"))
    for file in files:
        name = file['img']
        label = file['arousal']
        local_img_name = r"D:/affectnet\Manually_Annotated_Images" #数据集路径名
        target_path = r"F:\Affectnet-dataset\40000" #目标路径名
        sourceFile = os.path.join(local_img_name, name)
        targetFile = os.path.join(target_path, name)
        #将图像前面的文件路径截取出来,如果路径不存在,则创建路径!
        #这样就可以完美解决文件复制问题了
        path = targetFile.split('/')[0]  #目的是在目标路径名之后加上 子路径名
        if not os.path.exists(path):
            os.makedirs(path)
        shutil.copy(sourceFile, path)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值