Введение
В дворце древнегипетского faraона разворачивается сцена с магическим очарованием и сложными иероглифами. Королева Египта, обладая глубокой мудростью, столкнулась с критической проблемой: священные записи, которые используются для поддержания баланса наводнения Нила, находятся под угрозой навсегда быть утеряны. Вы, как верный мудрец, были призваны в дворец, чтобы создать устойчивую систему, которая обеспечит сохранение этих записей, используя силы блока finally в Python.
Ваша задача - создать неломаемый хранитель транскриптов, который будет выполнять свои обязанности даже при неожиданных ошибках. С помощью своих навыков вы будете руководить созданием Python-скриптов, которые обрабатывают исключения и гарантированные действия с использованием блока finally, обеспечивая, чтобы священные записи Королевы выдерживали любые испытания и трудности.
Строительство храма try - except - finally
В этом шаге вы создадите основу для вашего хранителя транскриптов, создав файл на Python, который будет выдерживать любые возможные сбои во время выполнения. Для этого вы будете использовать блоки try, except и finally в Python.
Откройте файл под названием transcript_keeper.py в ~/project. В этом файле напишите скрипт на Python, который пытается прочитать важную запись из файла, который может не существовать. Обработайте исключение, если файл отсутствует, и используйте блок finally, чтобы вывести сообщение, гарантирующее, что были выполнены некоторые важные действия по очистке.
Вот код, который нужно поместить в transcript_keeper.py:
def preserve_script():
try:
with open('/home/labex/project/sacred_script.txt', 'r') as file:
contents = file.read()
print(contents)
except FileNotFoundError:
print('The sacred script cannot be found.')
finally:
print('Ensuring the preservation environment remains intact.')
preserve_script()
Теперь запустите свой скрипт в терминале с помощью следующей команды:
python3 ~/project/transcript_keeper.py
Если файл sacred_script.txt не существует, должно быть выведено сообщение об ошибке, за которым следует сообщение из блока finally:
The sacred script cannot be found.
Ensuring the preservation environment remains intact.
Вдавливание логики в камень
После создания базовой структуры настало время вдавить в камень логику защиты, сделав ее постоянной. В этом шаге вы усовершенствуете хранитель транскриптов действиями, которые должны выполняться всегда, независимо от успешности операций чтения или нет.
Измените transcript_keeper.py, чтобы включить в блок finally имитацию действия по очистке, которое представляет собой сохранение состояния среды скрипта в файл журнала.
Добавьте это в конец блока finally в transcript_keeper.py:
def preserve_script():
try:
with open('/home/labex/project/sacred_script.txt', 'r') as file:
contents = file.read()
print(contents)
except FileNotFoundError:
print('The sacred script cannot be found.')
finally:
print('Ensuring the preservation environment remains intact.')
with open('/home/labex/project/preservation_log.txt', 'a') as log_file:
log_file.write('Preservation check completed\n')
preserve_script()
Запустите модифицированный скрипт снова и проверьте, что в preservation_log.txt есть запись журнала.
На вашем терминале должно быть выведено следующее:
$ python3 ~/project/transcript_keeper.py
The sacred script cannot be found.
Ensuring the preservation environment remains intact.
$ cat /home/labex/project/preservation_log.txt
Preservation check completed
Резюме
В этом практическом занятии вы отправились в путешествие в Древнюю Египет, где использовали свои знания о блоке finally в Python, чтобы обеспечить непрерывность священных записей Королевы. С помощью блока finally вы создали надежную систему, которая гарантирует выполнение определенных действий, таких как ведение журнала, независимо от любых ошибок, возникших во время выполнения.
В ходе этой магической приключения вы узнали важность действий по очистке и их реализации с использованием блока finally в Python. Эта безопасная защита гарантирует, что критические операции вашего скрипта будут завершены, в灌输я уверенность в устойчивость вашего кода. Пусть ваше путешествие по миру Python будет по-прежнему так вдохновляющим, как древняя мудрость Египта.



