Что такое менеджер контекста в Python?

Это объект, который управляет ресурсами в блоке with.
Он гарантирует корректное открытие и закрытие ресурсов, даже при исключениях.