无法按顺序追加

问题描述

import os
train_dir = "/Images/train/"
data = []
for i in os.listdir(train_dir):
    path = os.path.join(train_dir,i)
    img = cv2.imread(path)
    print(i)
    data.append(img)

我的 train 目录有 49000 张图片,顺序是 img(1),img(2),...,img(49000) 我只想按此顺序附加这些图像,但它们以不同的顺序附加(如图所示)。 有什么帮助吗?

I have printed the order in which they are getting appended

我想将它们附加为 img(1).png、img(2).png、img(3).png 等等。

解决方法

所以你要做的就是在 python 列表中列出图像名称。这是我的解决方案中的文件名。 Python list 有一个名为 sort() 的函数,它将对所有图像名称进行排序。您的新文件名列表将按相对于您目录中的图像名称排序。因此,遍历列表,您将获得排序后的图像名称。

train_dir = "/Images/train/"
filenames = [img for img in os.listdir(train_dir)]
filenames.sort()
data = []
for i in filenames:
    path = os.path.join(train_dir,i)
    img = cv2.imread(path)
    print(i)
    data.append(img)
,

使用排序方法对我有帮助。

data = []
train_dir = "/Images/train/"
files = os.listdir(train_dir)
files = sorted(files,key=lambda x: int(os.path.splitext(x)[0]))

for i in (files):
    path = os.path.join(train_dir,i)
    img = cv2.imread(path)
    data.append(img)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...