Вопросы к Поиску с Алисой
Контекстный менеджер with отличается от ручного закрытия файла через close() тем, что он автоматически контролирует открытие и закрытие файла. dzen.ru nuancesprog.ru
Когда поток управления покидает блок with, вызывается метод exit(), и в случае с файлами в нём вызывается метод close(). dzen.ru Таким образом, при использовании контекстного менеджера не нужно вручную вызывать метод close() каждый раз после работы с файлом, он сам закроется после выхода из блока. habr.com
Кроме того, из-за исключения, которое может возникнуть в процессе выполнения программы, при ручном закрытии файла через close() последовательность выполнения команд может обойти строку с закрытием файла, в результате чего дескриптор файла останется открытым и ресурсы операционной системы не будут освобождены. dzen.ru