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))

参考リンク:

http://t.csdn.cn/F3sfP

おすすめ

転載: blog.csdn.net/cyh20182808/article/details/130362444