1. 程式人生 > 其它 >python按照圖片命名順序讀取資料夾下的圖片

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的內容如下,沒有按序排列,

對上一步的imgList進行排序:

import os
 
imgList = os.listdir('E:\測試視訊01')
imgList.sort(key=lambda x: int(x.replace("frame","").split('.')[0]))#按照數字進行排序後按順序讀取資料夾下的圖片
print(imgList)

此時 imgList的內容如下,可以看到已經有序排列

再通過每張圖片的檔名獲得全路徑:

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)