работа с файлами определенного формата в директории

Всем привет! У меня есть часть кода, которая ссылается на файл в той же директории, где лежит скрипт.

wb = load_workbook('test.xlsx')

Вопрос: Как мне правильно указать путь, чтобы скрипт работал со всеми файлами в нужной мне директории формате .xlsx По моему это должно быть что-то типа

wb = load_workbook('mydir/*.xlsx')

но я понимаю что не прав. Пожалуйста, помогите


Ответы (2 шт):

Автор решения: eri
import glob
import os.path

for name in glob.glob('mydir/*.xlsx'):
    if os.path.isfile(name):
        wb = load_workbook(name)
→ Ссылка
Автор решения: Vasyl Kolomiets

Рекомендую полюбить модуль "pathlib"

from pathlib import Path
xls_files = [obj for obj in Path("mydir/").iterdir() if obj.is_file() and obj.suffix in {".xls", ".xlsx"} ]

а дальше - зависит от того как организована ваша load_workbook. Судя по названию - надо так

for obj in xls_files:
    wb = load_workbook(obj.name)
 

Важная деталь - проверка на то что найденный объект является файлом.
Предыдущий ответ с модулем "glob" выдаст и папки, если кто захочет их создать с именем типа "name.xlsx". Как минимум в винде это возможно. Конечно можно короче:

for obj in Path("mydir/").iterdir():
    if obj.suffix in {".xls", ".xlsx"} and obj.is_file():
         wb = load_workbook(obj.name)
→ Ссылка