python随机抽取指定文件夹下面的图片

我们在做图像处理、深度学习的时候,往往需要对数据集进行一些收集和处理,下面是用python对指定文件夹路径下面的图片进行随机抽取指定张数,并且存入到新的文件夹中。(支持多层文件夹的指定抽取)

import os,sys
import random
import shutil
import time


def getJpg(filename: str):
	return filename.endswith("jpg")

def getFile(fileDir, toFileDir, number):
	path = os.path.abspath(fileDir) + "/"
	path.replace("\\", "/")
	if os.path.isdir(fileDir):
		pathList = os.listdir(fileDir)
		jpgList = [i for i in filter(getJpg, pathList)]
		if jpgList:
			try:
				sample = random.sample(jpgList, number)
			except:
				print("某层文件夹图片数量不够")
				return
			for name in sample:
				try:
					shutil.move(path+name, toFileDir)
				except:
					filename = str(time.time()).replace('.','') + ".jpg"
					path = path.replace("\\", "/")
					os.rename(path+name, path+filename)
					shutil.move(path+filename, toFileDir)
		dirList = set(pathList) - set(jpgList)
		if dirList:
			for dir in dirList:
				getFile(path+dir, toFileDir, number)
	 

if __name__ == "__main__":
	fileDir = input("请输入处理文件夹:")
	if not os.path.isdir(fileDir):
		print("输入错误!")
		sys.exit()
	toFileDir = input("请输入目标文件夹:")
	if not os.path.isdir(toFileDir):
		print("输入错误!")
		sys.exit()
	number = input("请输入随机抽取图片数量:")
	if not number.isdigit() or int(number) <=0 :
		print("输入错误!")
		sys.exit()
	getFile(fileDir, toFileDir, int(number))
  • 3
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qiuzitao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值