python基础学习-按照图片大小排序并挑选前固定张数

实验遇到的一个小需求,这里记录一下

1、代码

import os
import shutil

class getNewFileList():
    def __init__(self):
        self.path = 'F:/data/dlqx/datasets/test_imgs/kodak/'  #表示需要命名处理的文件夹目录,复制地址后注意反斜杠
        self.new_img_folder = "F:/data/dlqx/datasets/test_imgs/sortKodak"
        self.imgNum = 10

    def sortFile(self):
        originalList = os.listdir(self.path)   #获取文件路径
        # print(originalList, 'originalList') # 图片名称,kodim20.png
        # 拼接全路径
        newList = list()
        for imgName in originalList:
          itemPath  = self.path + imgName
          newList.append(itemPath)
        # print(newList,'newList') # path全称
        # 给文件中的图片按从大到小进行排序
        sort_list = list()
        sort_list = sorted(newList,key=lambda file: os.path.getsize(file),reverse=True)
        # print(sort_list, '排序后')
        # 复制到新文件夹
        for index in range(self.imgNum):
          # print(sort_list[index], 'sort_list[index]')
          shutil.copy(sort_list[index], self.new_img_folder)
                

if __name__ == '__main__':
    demo = getNewFileList()
    demo.sortFile()
    


大致过程就是遍历图片,其中包含了拼接相关path的内容,然后对其进行排序,排序后将其复制到指定文件夹

2、效果

  1. 原始kodak全部图片
    在这里插入图片描述

  2. 按照文件大小从小到大排序后选取前10张
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_47146037/article/details/127307284