@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


Подскажите, он будет так закрывать эксель? А то я не совсем понимаю
  • Вопрос задан
  • 143 просмотра
Решения вопроса 1
@yuriy1340 Автор вопроса
Учусь сам python
Не сохраняет, проверил изменив класс контекстного менеджера с закрытия файла на сохранение-_-
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы