Использование контекстного менеджера делает работу с файлами более безопасной и удобной. В этом примере мы создадим собственный контекстный менеджер для автоматического закрытия файла и обработки ошибок.
class ManagedFile:
def __init__(self, filename, mode):
self.filename = filename
self.mode = mode
self.file = None
def __enter__(self):
self.file = open(self.filename, self.mode)
return self.file
def __exit__(self, exc_type, exc_val, exc_tb):
if self.file:
self.file.close()
with ManagedFile('example.txt', 'w') as f:
f.write('Hello, Custom Context!')