实验遇到的一个小需求,这里记录一下
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、效果
-
原始kodak全部图片
-
按照文件大小从小到大排序后选取前10张