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全部图片
    python基础学习-按照图片大小排序并挑选前固定张数_第1张图片

  2. 按照文件大小从小到大排序后选取前10张
    python基础学习-按照图片大小排序并挑选前固定张数_第2张图片

你可能感兴趣的:(python,计算机视觉,图像压缩,python,学习)