Как импортировать изображения в числовом порядке?

У меня есть этот код для импорта изображений из папки, но изображения идут в следующем порядке:

test1.png
test10.png
test100.png
test101.png
test102.png
test103.png
test104.png
test105.png
test106.png
test107.png
test108.png
test109.png
test11.png
test110.png
test111.png
test112.png
test113.png
test114.png
test115.png
test116.png
test117.png
test118.png
test119.png
test12.png
etc...

Порядок, который я хочу, это test1, test2, test3 и т. д.

Как я могу этого добиться?

test_set = []
test_result=[]
test_dir= "C:/Users/anwer/Desktop/copy/test/"

for file in os.listdir(test_dir):
    test_set.append((give_peak_sum(test_dir+file), file))
    test_result.append((give_peak_sum(test_dir+file)))
    print(file)

Все имена файлов формата test<number>.png?

gmds 09.04.2019 01:19

Используйте sortedList = sorted(test_result), чтобы отсортировать его позже. В противном случае проверьте glob: ​​stackoverflow.com/a/6774404/1501388

lashgar 09.04.2019 01:30

да, все они test<number>.png

Anwar Elhadad 09.04.2019 01:37
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
3
49
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Сначала вам нужно отсортировать список.

Если весь ваш файл начинается с «теста»

вы можете использовать

yourlist.sort(key=lambda x: int(x.split('.')[0][4:]))

где я могу использовать это в цикле?

Anwar Elhadad 09.04.2019 01:42

@AnwarElhadad поменяй os.listdir(test_dir) на sorted(os.listdir(test_dir), key=lambda x: int(x.split('.')[0][4:]))

Heaven 09.04.2019 01:48

Сортировать по целому числу в имени файла:

import os

def key(filename):
    return int(os.path.splitext(filename)[0][4:])

files = os.listdir(test_dir)
sorted_filenames = sorted([filename for filename in files], key=key)

как мне реализовать это в моем цикле?

Anwar Elhadad 09.04.2019 01:41

Замените os.listdir(test_dir) на sorted_filenames.

gmds 09.04.2019 01:53

Другие вопросы по теме