python从多个文件夹中随机获取文件复制到其他路径

如题,本来是一个不嫌麻烦可以手动复制粘贴实现的,奈何由于疫情闲在家太无聊了,再加上想把它作为一个随机挑选数据集做模型验证的脚本,就写了这个程序,写这篇博客也是因为实在无聊不知道干啥了,就随便写写吧。

我要做的是要从下面文件夹中各随机挑选2张图片复制到其他路径

import os, random, shutil

firstdir = 'C:/Users/10791/Desktop/数据集/ExDark/'#要复制文件所在路径
tardir = 'D:/Anaconda/py代码/test/'#想要复制到的路径
pathdir = os.listdir(firstdir)#获取所在路径下的所有文件
path1 = pathdir[:-1]#这里我不需要最后一个文件夹,把它剔除掉
#把路径和文件夹名字合到一起
path = []
for path2 in path1:
    path.append(firstdir + path2)

k = 0#用来作为文件夹名字也就是图像类别的key
for i in path:
    j = 0#因为不能重复命名,所以在文件名后加一个j来区分
    sample = random.sample(os.listdir(i), 2)#随机从每个类别文件夹中选取2张图片
    for name in sample:#对每个选出的文件做复制和重命名操作
        j += 1
        cut = name.split('.')#由于文件后缀不一样,所以在这里用切分来获取文件后缀名
        shutil.move(i+'/'+name, tardir+'/'+name)#复制操作
        os.rename(tardir+'/'+name,tardir+'/'+path1[k]+str(j)+'.'+cut[1])#重命名为类别(path1[k])的第几张(j)图片.后缀(cut[1])
    k += 1
  

结果如下:

发布了72 篇原创文章 · 获赞 37 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/xspyzm/article/details/104255136