работа с файлами определенного формата в директории
Всем привет! У меня есть часть кода, которая ссылается на файл в той же директории, где лежит скрипт.
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)