Python实现从一个文件夹下随机抽取一定数量(比例)的图片移动到另一个文件夹
Posted K同学啊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python实现从一个文件夹下随机抽取一定数量(比例)的图片移动到另一个文件夹相关的知识,希望对你有一定的参考价值。
按照数量随机选取图片
import os, random, shutil
def moveFile(fileDir,tarDir):
pathDir = os.listdir(fileDir) #取图片的原始路径
picknumber=500 # 自定义选取图片数目
sample = random.sample(pathDir, picknumber) #随机选取picknumber数量的样本图片
for name in sample:
shutil.move(fileDir+name, tarDir+name)
if __name__ == '__main__':
fileDir = "./一级目录A/" #源图片文件夹路径
tarDir = "./一级目录B/" #移动到新的文件夹路径
for oneDir in os.listdir(fileDir):
onefileDir = fileDir+oneDir+"/" # A的二级目录
onetarDir = tarDir+oneDir+"/" # B的二级目录
# 判断文件夹是否存在,不存在则创建
if not os.path.exists(onefileDir):
os.makedirs(onefileDir)
if not os.path.exists(onetarDir):
os.makedirs(onetarDir)
moveFile(onefileDir,onetarDir)
按照比例随机选取图片
import os, random, shutil
def moveFile(fileDir,tarDir):
pathDir = os.listdir(fileDir) #取图片的原始路径
filenumber=len(pathDir)
rate=0.1 #自定义抽取图片的比例,比方说100张抽10张,那就是0.1
picknumber=int(filenumber*rate) #按照rate比例从文件夹中取一定数量图片
sample = random.sample(pathDir, picknumber) #随机选取picknumber数量的样本图片
for name in sample:
shutil.move(fileDir+name, tarDir+name)
if __name__ == '__main__':
fileDir = "./一级目录A/" #源图片文件夹路径
tarDir = "./一级目录B/" #移动到新的文件夹路径
for oneDir in os.listdir(fileDir):
onefileDir = fileDir+oneDir+"/" # A的二级目录
onetarDir = tarDir+oneDir+"/" # B的二级目录
# 判断文件夹是否存在,不存在则创建
if not os.path.exists(onefileDir):
os.makedirs(onefileDir)
if not os.path.exists(onetarDir):
os.makedirs(onetarDir)
moveFile(onefileDir,onetarDir)
以上是关于Python实现从一个文件夹下随机抽取一定数量(比例)的图片移动到另一个文件夹的主要内容,如果未能解决你的问题,请参考以下文章
华为OD机试真题 Python 实现分奖金2022.11 Q4 新题