多文件夹随机抽取图片并另存多个文件夹

这段Python代码用于遍历指定目录下的子文件夹,创建新的目标文件夹,并随机选取每个子文件夹内一定数量的图片进行复制。它使用os和shutil库来操作文件和目录,随机选取图片则通过random模块实现。关键步骤包括获取文件夹列表、创建目标路径、随机选取样本图片以及复制图片到新位置。
摘要由CSDN通过智能技术生成
import os
import cv2
import random
import shutil
# 获取文件夹名称
path = r't'
dirnames = [f for f in os.listdir(path) if os.path.isdir(path + '\\' + f)]
print(dirnames)
# 遍历文件夹
for dir_name in dirnames:
    dir_path = path + '\\' + dir_name
    print(dir_path)
    # 创建新的文件夹
    target_path = r'f2' + '\\' + dir_name + '\\'
    if not os.path.exists(target_path):
        os.makedirs(target_path)
    pirpath = os.listdir(dir_path)
    # 随机选取函数
    sample = random.sample(pirpath, 2)  # 随机选取一定数量的样本图片,这里选2个
    print(sample)
    # 保存图片到目标文件夹
    for name in sample:
        print(name)
        shutil.copyfile(os.path.join(dir_path,name), os.path.join(target_path,name))
        # copyfile复制的是文件

遇到最大的问题就是一开始在复制随机选取的图片到其他文件夹时,不能将图片路径和名字拼接在一起,后来用os.path.join将文件夹名字和图片名字拼接到一起了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值