Использование менеджера контекста with при работе с файлами в Python отличается от обычного блока try-finally тем, что менеджер контекста автоматически заботится об освобождении ресурсов, в том числе о закрытии файлов. 14
Некоторые преимущества использования менеджера контекста:
Однако у использования менеджера контекста есть и минус: его можно применять только с объектами, которые поддерживают протокол управления контекстом. 5 Блок try-finally, в свою очередь, позволяет выполнять действия по очистке для произвольных объектов без необходимости в поддержке протокола управления контекстом. 5