深度学习时,往往需要划分训练集、测试集以及验证集。在之前,我已经介绍了利用keras中的ImageDataGenerator方法实现数据集的划分。但是原文件夹中的数据,并没有真正的划分到两个文件夹中。这次介绍的这个方法,可以按照一定的比例或者数量将数据从一个文件夹移动到另一个文件夹。
如下所示的文件夹:一共有24个子文件夹

每个文件夹中有500张左右的图片。

1.按照比例划分

import os, random, shutil
def moveFile(fileDir, tarDir):pathDir = os.listdir(fileDir)  # 取图片的原始路径filenumber = len(pathDir)rate = 0.2 # 抽取图片的比例,自己定义即可picknumber = int(filenumber * rate)  # 所抽取图片的数量sample = random.sample(pathDir, picknumber)  # 随机选取picknumber数量的样本图片for name in sample:shutil.move(fileDir + name, tarDir + name)if __name__ == '__main__':fileDir = "E:/tmp/.keras/datasets/gestures/"  # 源图片文件夹路径,这是一级文件夹,里面的二级文件夹中包含着图片,如上图所示。tarDir = "E:/tmp/.keras/datasets/gestures_test/"  # 移动到新的文件夹路径,这里也是一级文件夹,二级文件夹存在与否无所谓for oneDir in os.listdir(fileDir):onefileDir = fileDir + oneDir + "/"  # 源文件夹的二级文件夹onetarDir = tarDir + oneDir + "/"  # 移动文件夹的二级文件夹# 判断移动文件夹中的二级文件夹是否存在,不存在则创建if not os.path.exists(onetarDir):os.makedirs(onetarDir)moveFile(onefileDir, onetarDir)

划分结果如下所示:
起初移动文件夹是没有二级文件夹的,现已建好。

每个文件夹中有之前文件夹中的20%的数据。

2.按照数量划分

其实按照数量划分的原理与按照比例划分的原理类似,只不过是按照原理划分时,需要按照比例计算移动的数量,而按照数量划分直接规定好了数量。

import os, random, shutil
def moveFile(fileDir, tarDir):pathDir = os.listdir(fileDir)  # 取图片的原始路径picknumber = 200  # 所抽取图片的数量sample = random.sample(pathDir, picknumber)  # 随机选取picknumber数量的样本图片for name in sample:shutil.move(fileDir + name, tarDir + name)if __name__ == '__main__':fileDir = "E:/tmp/.keras/datasets/gestures/"  # 源图片文件夹路径,这是一级文件夹,里面的二级文件夹中包含着图片,如上图所示。tarDir = "E:/tmp/.keras/datasets/gestures_test/"  # 移动到新的文件夹路径,这里也是一级文件夹,二级文件夹存在与否无所谓for oneDir in os.listdir(fileDir):onefileDir = fileDir + oneDir + "/"  # 源文件夹的二级文件夹onetarDir = tarDir + oneDir + "/"  # 移动文件夹的二级文件夹# 判断移动文件夹中的二级文件夹是否存在,不存在则创建if not os.path.exists(onetarDir):os.makedirs(onetarDir)moveFile(onefileDir, onetarDir)

划分结果如下所示,之前已有103张图片,再次划分过200张,共303张:

参考博客

努力加油a啊

基于python实现将一个文件夹中的图片移动到另一个文件夹相关推荐

  1. 将一个文件夹中的所有图片移到另外一个文件夹中,包含二级文件夹中的

    # coding=utf-8 import os import shutil#目标文件夹,此处为相对路径,也可以改为绝对路径 determination = '/Users/huhao/Downloa ...

  2. 如何将文件夹中的图片名字提取到一个txt文档上

    得到的文档只有全部图片的名字 1 先建一个.txt 文件 2 在文件中写进代码 @echo off dir /b /on >list.txt 保存,把后缀名.txt 改成 .bat 3 把这个b ...

  3. python opencv 实现从一个文件夹中读取图片做切割处理后放入另一个文件夹

    python opencv 实现从一个文件夹中读取图片切割处理后放入另一个文件夹. 实现的功能是把一个文件夹里的图片作处理,即把原图片中心为起点切割成1536*1536的图片,原图片必须大于这个的大小 ...

  4. 使用Python读取文件夹中的图片

    文章目录 Python创建新的文件夹 Python读取文件夹中的图片内容以及存取   一个文件夹中含有大量的图片文件,jpg格式和png格式的.需要从中选出一些比较适合电脑分辨率的,也就是宽度大于高度 ...

  5. 【批量改文件夹中的图片名称-python】

    批量改文件夹中的图片名称-python(记录) 目的 最近在制作零件数据集标注时,发现在摄像机中拍摄的图片名称是乱码的,不便于进行数据标注,所以写下这段代码,以便日后再次使用. 转换之前图片文件夹中的 ...

  6. 利用python将文件夹中子文件夹中的图片数目大于小于指定的数目分类

    利用python将文件夹中子文件夹中的图片数目大于小于指定的数目分类 find ./ -name ".DS_Store" -depth -exec rm {} \;  Mac 删除 ...

  7. python 按照顺序读取文件夹中的图片名称

    前言: 在ubuntu16.04系统中,读取图像名称的时候,往往会出现乱序的现象,比如: 1,2,3,4,5,6,7,8,9,10 可能会被提取到的顺序为: 1,10,2,3,4,5,6,7,8,9 ...

  8. Python如何将一个列表拆分,将多个数据作为一个元素存放到元组中

    Python如何将一个列表拆分,将多个数据作为一个元素存放到元组中 问题描述:在编写脚本的过程中,需要从一个文件中获取服务器信息,包含IP地址.端口号.用户名和密码,获取文件信息的时候,是将所有的每一 ...

  9. 根据文件夹中的图片数据集生成.txt文件标签

    文章目录 前言 数据集格式 Python实现 注意事项 前言 深度学习中的与图片有关的任务,如图像识别,图像分类,目标检测,图像分割等,在准备图片数据集时,图片的序号和标签往往是由.txt文件获取的. ...

最新文章

  1. php求二维矩阵的最大子矩阵,最大子矩阵-动态规划
  2. JS中变量和函数的使用
  3. TypeScript,从0到入门带你进入类型的世界
  4. 我的第一程序语言python
  5. 看朋友日志发现的一个ios下block相关的内存管理问题,非常奇怪,请大家帮忙一起来回答!...
  6. TSAP(4) : 时间序列采样[asfreq( ) VS resample( )]
  7. 用opencv进行图像处理-利用傅里叶变换进行图像的高通滤波和锐化
  8. [资源数据]民族代码
  9. 大数据发展的7个趋势 -- 阿里技术专家权威解读
  10. 通过cRIO 9047 USB端口自定义开发周立功CAN盒
  11. 【人工智能】传教士和野人问题(M-C问题)
  12. Linux -- 搜狗输入法安装完成之后的设置
  13. 私有云的优缺点_私有云的优缺点是什么?与公有云的区别
  14. 怎样理解python是解释型语言
  15. 2018计算机cpu调研,2018年1月电脑CPU天梯图
  16. 安全牛--kali学习笔记
  17. nxp_3|虚拟机Linux内核资源
  18. 微信小程序简单介绍及例子,小白可看
  19. trinity运行原理及常见报错(一)
  20. Python——信号量、条件变量、事件

热门文章

  1. IOS之storyBoard的storyboard_reference的使用
  2. rpm如何卸载mysql_Linux下卸载和安装MySQL[rpm包]
  3. centos7杀掉进程_Linux下强制杀死进程的方法详解
  4. wdcp查看mysql日志_查看修改服务器中的WDCP数据库操作记录
  5. python opencv直方图_【python opencv】直方图均衡
  6. 苹果雪豹操作系统正式版_iOS 12.3.1正式版“意外”推送,iPhone修复诸多问题!...
  7. mysql在计算机管理中的路径怎么修改_Rstudio中修改工作路径的三种方法
  8. Android开发之Dialog对话框(弹框)工具类
  9. cocoa 调用C的静态库
  10. html触发js参数怎么用,js 绑定带参数的事件以及手动触发事件