Не усложняйте:
import os
relevant_path = "[path to folder]"
included_extensions = ['jpg','jpeg', 'bmp', 'png', 'gif']
file_names = [fn for fn in os.listdir(relevant_path)
if any(fn.endswith(ext) for ext in included_extensions)]
Я предпочитаю эту форму составления списков, потому что она хорошо читается на английском языке.
Я читаю четвертую строку как:
Для каждого fn в os.listdir для моего пути, дайте мне только те, которые соответствуют любому из моих включенных расширений.
Для начинающих программистов на Python может быть трудно привыкнуть к использованию списочных представлений для фильтрации, и это может иметь некоторые накладные расходы памяти для очень больших наборов данных, но для перечисления каталога и других простых задач фильтрации строк, приводят к пониманию списков для более чистого документируемого кода.
Единственное, что есть в этом дизайне, это то, что он не защищает вас от ошибки при передаче строки вместо списка. Например, если вы случайно конвертируете строку в список и в конечном итоге проверяете все символы строки, вы можете получить массу ложных срабатываний.
Но лучше иметь проблему, которую легко решить, чем решение, которое трудно понять.