Да, файловые объекты в Python являются контекстными менеджерами.
Они реализуют методы __enter__ и __exit__, что позволяет использовать их в операторе with.
python
Использование with гарантирует, что файловый объект будет корректно закрыт, даже если в процессе работы с файлом возникнут исключения. Метод __enter__ возвращает сам файловый объект, а метод __exit__ обрабатывает его корректное закрытие.