Использование оператора with в Python

PythonPythonBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

Вашей задачей как облачного приключителя является овладеть мощным конструкцией Python под названием with statement, которая обеспечивает правильную обработку и освобождение ресурсов. Эта навык станет决定性 для сохранения гармонии неба, когда вы применяете свои навыки программирования для передвижения по облакам и расшифровки свитков, которые вы встретите.

Исследование with statement

В этом шаге вы начнете свое путешествие, изучая with statement в Python. with statement упрощает обработку исключений, заключая общие задачи по подготовке и очистке в так называемые менеджеры контекста. Ваша первая задача — прочитать файл, содержащий карту местоположения Потерянного свитка, и убедиться, что он корректно закрывается после использования.

Теперь прочитайте содержимое файла /home/labex/project/map.txt с использованием with statement в /home/labex/project/map.py:

## Python code to read'map.txt'
with open('/home/labex/project/map.txt', 'r') as file:
    print(file.read())

Это безопасно откроет и закроет файл, даже если при чтении его содержимого возникнет ошибка:

На вашем терминале должна быть отображена следующая информация:

Cross the Cumulus Cliffs, through the Misty Gorge, and into the Stratus Caves

Безопасная запись в файл

Для следующей части вашего испытания вы запишете свою экспертизу при прохождении склона Кумулуса в файл журнала. Это гарантирует, что будущие приключители будут иметь путеводитель, и также учит вас важности безопасных операций записи в Python.

Затем используйте with statement в map.py для записи журнала в /home/labex/project/adventure_log.txt.

log = "Navigated through Cumulus Cliffs. Encountered mild turbulences but no serious obstructions."
with open('/home/labex/project/adventure_log.txt', 'w') as file:
    file.write(log)

Запустите скрипт и просмотрите содержимое файла adventure_log.txt следующим образом:

$ python3 map.py
$ cat /home/labex/project/adventure_log.txt
Navigated through Cumulus Cliffs. Encountered mild turbulences but no serious obstructions.

Таким образом, вы не только оставили свою метку в истории гильдии, но и потренировались в управлении ресурсами с использованием with statement.

Резюме

В этом лабе вы отправились в приключение по небескому королевству, используя with statement для безопасной обработки файлов в Python. С помощью интеграции фантастической сюжетной линии с упражнениями по программированию, цель лабы заключалась в создании увлекательного опыта обучения. Сюжет был спроектирован вокруг with statement, чтобы создать контекст, дополняющий выполнение кода. Вы узнали, как эффективно читать из и записывать в файлы, не рискуя утечкой ресурсов, даже в случае ошибок, что является важным навыком в реальном программировании. Ваш недавно приобретенный навык обязательно поможет вам в многих других приключениях!

Помните, что ключ к мастерству — это практика, поэтому продолжайте совершенствовать свои навыки, и, возможно, однажды вы станете самым легендарным приключителем в истории небеского королевства!