Задать вопрос
@yuriy1340
Учусь сам python

Будет ли закрываться excel-файл при открытии через контекстменеджера и дальнейшей работе класса?

Только разбираюсь в классах, работаю с Excel-файлом, придется много раз открывать его и парсить (будут другие файлы). Работаю через openpyxl. Написал контекст менеджера для того, чтобы открывало и закрывало через load_workbook. Вообще, уровень понимания происходящего как у древнего человека с дубинкой, тыкаюсь во все, что могу - работает, классно, нет - тыкаюсь дальше))00
Ниже представляю контекст менеджера

class load_workbook_ctx_mgr(object):
    """
    Класс для открытия и закрытия Excel-файлов
    """
    def __init__(self, xl_name) ->None:
        """
        Функция для приему Excel - файла
        :param xl_name: имя Excel - файла
        """
        self.arg = xl_name


    def __enter__(self) :
        """
        Функия для открытия Excel-файл
        """
        self.wb = load_workbook(self.arg, data_only=True)
        return self.wb

    def __exit__(self, exc_type, exc_val, exc_tb):
        """
        Функция для закрытия Excel-файла
        :param exc_type:
        :param exc_val:
        :param exc_tb:
        :return:
        """
        self.wb.close()


Вот и после этого создаю другой класс, который уже будет бегать по файлам и что-то делать.

class Create_List(object):
    """
    Класс для разделения Excel - файла на листы
    """
    def __init__(self, xl_name: str):
        """
        :param xl_name: имя Excel-файла
        """
        with load_workbook_ctx_mgr(xl_name) as workbook:
            self.workbook = workbook


Подскажите, он будет так закрывать эксель? А то я не совсем понимаю
  • Вопрос задан
  • 175 просмотров
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Python-разработчик
    9 месяцев
    Далее
  • SF Education
    Бэкенд-разработчик на Python
    3 месяца
    Далее
Решения вопроса 1
@yuriy1340 Автор вопроса
Учусь сам python
Не сохраняет, проверил изменив класс контекстного менеджера с закрытия файла на сохранение-_-
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы