Bloque finally en Python

PythonBeginner
Practicar Ahora

Introducción

En el palacio del faraón egipcio antiguo, se desenvuelve una escena de fascinación mística y complejos jeroglíficos. La Reina de Egipto, con su profunda sabiduría, ha enfrentado un desafío crítico: los escritos sagrados utilizados para mantener el equilibrio de las inundaciones del Nilo corren el riesgo de perderse para siempre. Tú, como un sabio de confianza, has sido convocado al palacio para construir un sistema resiliente que garantice la preservación de estos escritos, utilizando las capacidades del bloque finally de Python.

Tu objetivo es crear un guardián de transcripciones inquebrantable que realizará sus funciones incluso cuando se enfrente a errores imprevistos. Utilizando tus habilidades, guiarás la construcción de scripts de Python que manejen excepciones y acciones garantizadas a través del bloque finally, asegurando que los escritos sagrados de la Reina resistirán cualquier prueba o adversidad.

Construyendo el Templo de Try-Except-Finally

En este paso, construirás la base de tu guardián de transcripciones creando un archivo de Python que resistirá cualquier fallo potencial durante su ejecución. Utilizarás los bloques try, except y finally de Python para lograr esto.

Abre un archivo llamado transcript_keeper.py en ~/project. En este archivo, escribe un script de Python que intente leer un script importante de un archivo que puede no existir. Maneja la excepción si el archivo falta, y utiliza el bloque finally para imprimir un mensaje asegurando que se han realizado algunas acciones de limpieza cruciales.

Aquí está el código para colocar en 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('El script sagrado no se puede encontrar.')
    finally:
        print('Asegurando que el entorno de preservación permanezca intacto.')

preserve_script()

Ahora, ejecuta tu script en la terminal con el siguiente comando:

python3 ~/project/transcript_keeper.py

Si sacred_script.txt no existe, debería mostrar el mensaje de error, seguido del mensaje del bloque finally:

El script sagrado no se puede encontrar.
Asegurando que el entorno de preservación permanezca intacto.

Grabando la Lógica en Piedra

Después de crear la estructura básica, ahora es el momento de grabar la lógica de protección en piedra, haciéndola permanente. En este paso, mejorará el guardián de transcripciones con acciones que deben siempre ejecutarse, independientemente de si las operaciones de lectura fueron exitosas o no.

Modifique el transcript_keeper.py para incluir una acción de limpieza simulada en el bloque finally que representa guardar el estado del entorno del script en un archivo de registro.

Agregue esto al final de su bloque finally en 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('El script sagrado no se puede encontrar.')
    finally:
        print('Asegurando que el entorno de preservación permanezca intacto.')
        with open('/home/labex/project/preservation_log.txt', 'a') as log_file:
            log_file.write('Preservation check completed\n')

preserve_script()

Ejecute nuevamente el script modificado y verifique que preservation_log.txt tenga la entrada de registro.

La información siguiente debe mostrarse en su terminal:

$ python3 ~/project/transcript_keeper.py
El script sagrado no se puede encontrar.
Asegurando que el entorno de preservación permanezca intacto.
$ cat /home/labex/project/preservation_log.txt
Preservation check completed

Resumen

En este laboratorio, emprendiste un viaje hacia la antigua Egipto, donde utilizaste tus conocimientos sobre el bloque finally de Python para asegurar la continuidad de los escritos sagrados de la Reina. Con el bloque finally, creaste un sistema robusto que garantiza que ciertas acciones, como el registro, se realicen independientemente de cualquier error que se encuentre durante la ejecución.

A través de esta aventura mística, has aprendido la importancia de las acciones de limpieza y su implementación utilizando el bloque finally de Python. Esta red de seguridad asegura que las operaciones críticas de tu script se completen, infundiendo confianza en la resiliencia de tu código. Que tu viaje por el reino de Python siga siendo tan iluminador como la sabiduría antigua de Egipto.