python按照图片命名顺序读取文件夹下的图片

参考:

【1】python按照图片命名顺序读取文件夹下的图片
【2】Python按顺序读取文件夹中文件
【3】python: 获取 后缀名(扩展名) / 文件名


教程

现在需要按照图片的命名顺序逐个读取图片(即按照frame1.jpg,frame2.jpg,frame3.jpg,frame4.jpg,frame5.jpg顺序),通常情况下需要通过文件夹的路径将所有图片名放入到一个列表中,如下imgList保存'E:\测试视频01'文件夹下所有图片的名称

import os
imgList = os.listdir('E:\测试视频01')
print(imgList)

imgList的内容如下,没有按序排列,
image

对上一步的imgList进行排序:

import os
 
imgList = os.listdir('E:\测试视频01')
imgList.sort(key=lambda x: int(x.replace("frame","").split('.')[0]))#按照数字进行排序后按顺序读取文件夹下的图片
print(imgList)

此时 imgList的内容如下,可以看到已经有序排列
image

再通过每张图片的文件名获得全路径:

import os
 
dir = 'E:\测试视频01'
imgList = os.listdir(dir)
print(imgList)
imgList.sort(key=lambda x: int(x.replace("frame","").split('.')[0]))#按照数字进行排序后按顺序读取文件夹下的图片
print(imgList)
for count in range(0, len(imgList)):
    im_name = imgList[count]
    im_path = os.path.join(dir,im_name)
    print(im_path)


实践

        # frame_list = glob.glob(os.path.join(self.edited_img_dir, path_code, '*g'))
        frame_list = os.listdir(os.path.join(self.edited_img_dir, path_code))
        try:
            frame_list.remove('Thumbs.db')
        except:
            pass
        try:
            frame_list.remove('.DS_Store')
        except:
            pass
        print(frame_list)
        nums = len(frame_list)
        frame_list.sort(key=lambda x: int(x.split('.')[0]))     # 按照数字进行排序后按顺序读取文件夹下的图片
        # suffix = os.path.splitext(frame_list[0])[-1]

        for i in range(nums):
            # img_np = read_img(frame_list[i])
            frame_name = os.path.join(self.edited_img_dir, path_code, frame_list[i])
            print(frame_name)
            img_np = read_img(frame_name)
posted @ 2021-09-19 20:09  麦克斯的园丁  阅读(2213)  评论(0编辑  收藏  举报