python按照圖片命名順序讀取資料夾下的圖片
阿新 • • 發佈:2021-09-19
參考:
【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)