当前位置: 首页 > news >正文

指定文件夹随机筛出图像

1

  1. 遍历 G:\Data\train 下所有以数字命名的子文件夹。

  2. 在每个子文件夹的 spoof 目录中,随机抽取 1 张图像(由 images_per_folder=1 控制)。

  3. 将所选图像复制到 H:\copy,并在文件名前加上原子文件夹名作为前缀以防重名。


示例

  • 源目录结构(执行前)

G:\Data\train
├─ 1001
│  └─ spoof
│     ├─ a.jpg
│     ├─ b.jpg
│     └─ c.jpg
├─ 1002
│  └─ spoof
│     ├─ x.png
│     └─ y.png
└─ other_folder   (因非数字命名,将被跳过)
  • 目标目录(执行后)

H:\copy
├─ 1001_b.jpg      ← 从 1001\spoof 随机抽取 b.jpg,并重命名为 1001_b.jpg
├─ 1002_x.png      ← 从 1002\spoof 随机抽取 x.png,并重命名为 1002_x.png

控制台输出示例:

[完成] 从 G:\Data\train\1001\spoof 复制 1 张图片
[完成] 从 G:\Data\train\1002\spoof 复制 1 张图片✅ 所有 spoof 图像复制完成!

1

import os
import shutil
import random# 源数据根目录(train)
source_root = r'G:\Data\train'# 目标目录(你可以改成任意你想要保存的路径)
target_dir = r'H:\copy'# 每个 spoof 文件夹选多少张图
images_per_folder = 1# 确保目标目录存在
os.makedirs(target_dir, exist_ok=True)# 遍历所有数字子文件夹
for subfolder_name in os.listdir(source_root):subfolder_path = os.path.join(source_root, subfolder_name)# 判断是否为数字命名的文件夹if not subfolder_name.isdigit():continuespoof_path = os.path.join(subfolder_path, 'spoof')if not os.path.exists(spoof_path):print(f"[跳过] 未找到 spoof 文件夹: {spoof_path}")continue# 获取所有图像文件(你可以加 .jpg 过滤)image_files = [f for f in os.listdir(spoof_path) if os.path.isfile(os.path.join(spoof_path, f))]if len(image_files) < images_per_folder:print(f"[跳过] 图片不足 {images_per_folder} 张: {spoof_path}")continueselected_images = random.sample(image_files, images_per_folder)for img_name in selected_images:src = os.path.join(spoof_path, img_name)# 防止文件重名,加入文件夹前缀dst = os.path.join(target_dir, f"{subfolder_name}_{img_name}")shutil.copy2(src, dst)print(f"[完成] 从 {spoof_path} 复制 1 张图片")print("\n✅ 所有 spoof 图像复制完成!")

1


文章转载自:

http://vDgOuUBe.wpqwk.cn
http://EX6P4Cjz.wpqwk.cn
http://SY2DU9uy.wpqwk.cn
http://aMJFXUis.wpqwk.cn
http://EpbWynPE.wpqwk.cn
http://b97o2rx8.wpqwk.cn
http://vaxThRox.wpqwk.cn
http://zaM2q8nW.wpqwk.cn
http://MStp3i1J.wpqwk.cn
http://gxxs3Ddx.wpqwk.cn
http://J4DkT72R.wpqwk.cn
http://WtIQyMnJ.wpqwk.cn
http://aYnUegej.wpqwk.cn
http://TIsC1df7.wpqwk.cn
http://oNG2Mwz0.wpqwk.cn
http://Z5J8EWc7.wpqwk.cn
http://WYMQ0oug.wpqwk.cn
http://P27JPMqR.wpqwk.cn
http://F05okXCu.wpqwk.cn
http://wjU2KTPK.wpqwk.cn
http://wpNQRQ32.wpqwk.cn
http://STtJ4N7v.wpqwk.cn
http://0la46kXf.wpqwk.cn
http://M5ZVfnJj.wpqwk.cn
http://GDw4Dyos.wpqwk.cn
http://Itd64uZM.wpqwk.cn
http://be1Q0sKX.wpqwk.cn
http://BpYktElW.wpqwk.cn
http://BAArHKIZ.wpqwk.cn
http://dddPdltX.wpqwk.cn
http://www.dtcms.com/a/151273.html

相关文章:

  • 卷积神经网络常用结构
  • # 构建和训练一个简单的CBOW词嵌入模型
  • 密码学(1)LWE,RLWE,MLWE的区别和联系
  • 语法长难句
  • 星火燎原:Spark技术如何重塑大数据处理格局
  • 设计模式--工厂模式详解
  • ubuntu系统下部署使用git教程
  • 配置Intel Realsense D405驱动与ROS包
  • mysql数据库查看进程
  • 使用react的ant-design-pro框架写一个地图组件,可以搜索地图,可以点击地图获取点击的位置及经纬度
  • 【Deepseek学习大模型推理】MOONCAKE: A KVCache-centric Architecture 第一部分引言部分
  • springboot集成openfeign
  • How to install cuda-toolkit on Dell XPS 9560 with Linux mint 21
  • 安全邮件系统的Maple实现详解
  • C# 设计原则总结
  • Sci期刊的编辑会对投稿论文进行查重吗?
  • 560. 和为 K 的子数组(java)
  • 熊海CMS Cookie脆弱
  • linux系统调用
  • springmvc入门案例
  • 【编译原理】第三章 习题
  • React 5 种组件提取思路与实践
  • UIAutomator 与 Playwright 在 AI 自动化中的界面修改对比
  • IP-guard离线卸载客户端及清除策略说明
  • 基于Python Socket的多线程聊天程序实现
  • pod内部共享命名空间与k8s命名空间是一个东西吗?
  • Podman Desktop:现代轻量容器管理利器(Podman与Docker)
  • Vmware安装centos7和Redis
  • kafka安装、spark安装
  • 概率dp总结