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)