1. Learn
  2. /
  3. Courses
  4. /
  5. Написание функций на Python

Connected

Exercise

Контекстный менеджер open() только для чтения

У вас есть набор файлов с данными для следующего проекта по глубокому обучению — вы потратили месяцы на их сбор и подготовку. Было бы очень неприятно случайно перезаписать один из них при попытке загрузить для обучения. Поэтому вы решаете создать версию контекстного менеджера open() только для чтения и использовать её в своём проекте.

Обычный контекстный менеджер open():

  • принимает имя файла и режим ('r' — чтение, 'w' — запись, 'a' — добавление)
  • открывает файл для чтения, записи или добавления
  • передаёт управление контексту вместе со ссылкой на файл
  • ожидает завершения контекстного блока
  • затем закрывает файл перед выходом

Ваш контекстный менеджер будет работать так же, но принимать только имя файла в качестве аргумента и открывать файл исключительно для чтения.

Instructions

100 XP
  • Передайте управление из open_read_only() в контекстный блок так, чтобы объект read_only_file был присвоен переменной my_file.
  • Используйте метод .close() объекта read_only_file, чтобы не оставлять открытые файлы незакрытыми.