Bloco Finally do Python

PythonBeginner
Pratique Agora

Introdução

No antigo palácio do faraó egípcio, uma cena de fascínio místico e hieróglifos complexos se desenrola. A Rainha do Egito, com sua profunda sabedoria, encontrou um desafio crítico: os escritos sagrados usados para manter o equilíbrio das cheias do Nilo correm o risco de serem perdidos para sempre. Você, como um sábio de confiança, foi convocado ao palácio para construir um sistema resiliente que garanta a preservação desses escritos, usando os poderes do bloco finally do Python.

Seu objetivo é criar um guardião de transcrições inquebrável que cumprirá seus deveres mesmo quando confrontado com erros imprevistos. Usando suas habilidades, você guiará a construção de scripts Python que lidam com exceções e ações garantidas através do bloco finally, garantindo que os escritos sagrados da Rainha perdurem por qualquer provação ou tribulação.

Construindo o Templo Try-Except-Finally

Nesta etapa, você construirá a base do seu guardião de transcrições, criando um arquivo Python que resistirá a quaisquer falhas potenciais durante sua execução. Você utilizará os blocos try, except e finally do Python para realizar isso.

Abra um arquivo chamado transcript_keeper.py em ~/project. Neste arquivo, escreva um script Python que tenta ler um script importante de um arquivo que pode não existir. Lide com a exceção se o arquivo estiver ausente e use o bloco finally para imprimir uma mensagem garantindo que algumas ações cruciais de limpeza foram realizadas.

Aqui está o código para colocar em 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()

Agora, execute seu script no terminal com o seguinte comando:

python3 ~/project/transcript_keeper.py

Se sacred_script.txt não existir, ele deverá exibir a mensagem de erro, seguida pela mensagem do bloco finally:

The sacred script cannot be found.
Ensuring the preservation environment remains intact.

Gravando a Lógica na Pedra

Tendo criado a estrutura básica, é hora de gravar a lógica de proteção na pedra, tornando-a permanente. Nesta etapa, você aprimorará o guardião de transcrições com ações que devem sempre ser executadas, independentemente de operações de leitura bem-sucedidas ou não.

Modifique o transcript_keeper.py para incluir uma ação de limpeza simulada no bloco finally que representa salvar o estado do ambiente do script em um arquivo de log.

Adicione isso ao final do seu bloco finally em 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()

Execute o script modificado novamente e verifique se preservation_log.txt tem a entrada de log.

As informações abaixo devem ser exibidas no seu terminal:

$ 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

Resumo

Neste laboratório, você embarcou em uma jornada ao Egito antigo, onde usou seu conhecimento do bloco finally do Python para garantir a continuidade dos scripts sagrados da Rainha. Com o bloco finally, você criou um sistema robusto que garante que certas ações, como logging (registro), sejam executadas independentemente de quaisquer erros encontrados durante a execução.

Através desta aventura mística, você aprendeu a importância das ações de limpeza e sua implementação usando o bloco finally do Python. Essa rede de segurança garante que as operações críticas do seu script sejam concluídas, incutindo confiança na resiliência do seu código. Que sua jornada pelo reino do Python continue a ser tão esclarecedora quanto a sabedoria antiga do Egito.