порядок изображений при создании изображения с использованием imageio - PullRequest
0 голосов
/ 30 ноября 2018

Я делаю gif модулем imageio, используя сгенерированные файлы .png.Хотя файлы .png сортируются и располагаются в порядке номеров, сгенерированная анимация .gif не следует этому порядку.Какова причина?Вот мой код:

png_dir='png'
images=[]
for file_name in os.listdir(png_dir):
    if file_name.endswith('.png'):
        file_path = os.path.join(png_dir, file_name)
        images.append(imageio.imread(file_path))
imageio.mimsave('movie.gif', images, duration=1)

и файлы .png похожи на file_01.png, file_02.png ... file_099.png

Почему gif не генерируется с тем же порядком файлов .png?

Заранее спасибо за любую помощь!

1 Ответ

0 голосов
/ 30 ноября 2018

Вы предполагаете , что файлы упорядочены, но состояние docs из os.listdir (выделено мной):

os.listdir (путь = '.')

Возвращает список, содержащий имена записей в каталоге, заданных путем. Список в произвольном порядке и не содержит специальных записей '.'и '..', даже если они присутствуют в каталоге.

Вы можете отсортировать возвращаемый список самостоятельно:

for file_name in sorted(os.listdir(png_dir)):

Примечание: Python не имеет встроенной естественной сортировки,если это то, что вы ищете, вы должны проверить ответы на этот вопрос: Есть ли в Python встроенная функция для естественной сортировки строк?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...