Bloc finally en Python

PythonPythonBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans le palais du pharaon égyptien antique, une scène empreinte d'allure mystique et de hiéroglyphes complexes se déroule. La reine d'Égypte, douée d'une sagesse profonde, a rencontré un défi crucial : les scripts sacrés utilisés pour maintenir l'équilibre des inondations du Nil sont menacés de disparaître à jamais. Vous, en tant que sage de confiance, avez été convoqué au palais pour construire un système résilient qui assure la préservation de ces scripts, en utilisant les pouvoirs du bloc finally de Python.

Votre objectif est de créer un gardien de transcript indestructible qui accomplira ses fonctions même face à des erreurs imprévues. En utilisant vos compétences, vous guidera la construction de scripts Python qui gèrent les exceptions et les actions garanties grâce au bloc finally, assurant ainsi que les scripts sacrés de la reine résisteront à tout essai ou tribulation.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ErrorandExceptionHandlingGroup(["Error and Exception Handling"]) python/ErrorandExceptionHandlingGroup -.-> python/finally_block("Finally Block") subgraph Lab Skills python/finally_block -.-> lab-271554{{"Bloc finally en Python"}} end

Construire le Temple du Try-Except-Finally

Dans cette étape, vous construirez les fondations de votre gardien de transcript en créant un fichier Python qui résistera à toute erreur potentielle pendant son exécution. Vous utiliserez les blocs try, except et finally de Python pour y parvenir.

Ouvrez un fichier nommé transcript_keeper.py dans ~/project. Dans ce fichier, écrivez un script Python qui tente de lire un script important à partir d'un fichier qui peut ne pas exister. Gérez l'exception si le fichier est manquant, et utilisez le bloc finally pour afficher un message assurant que certaines actions de nettoyage cruciales ont été effectuées.

Voici le code à insérer dans 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('Le script sacré n\'a pas été trouvé.')
    finally:
        print('Vérification que l\'environnement de conservation reste intact.')

preserve_script()

Maintenant, exécutez votre script dans le terminal avec la commande suivante :

python3 ~/project/transcript_keeper.py

Si le fichier sacred_script.txt n'existe pas, il devrait afficher le message d'erreur, suivi du message du bloc finally :

Le script sacré n'a pas été trouvé.
Vérification que l'environnement de conservation reste intact.

Gravure de la logique sur la pierre

Ayant créé la structure de base, il est maintenant temps de graver la logique de protection sur la pierre pour la rendre permanente. Dans cette étape, vous allez améliorer le gardien de transcript avec des actions qui doivent toujours s'exécuter, que la lecture réussie des opérations soit ou non.

Modifiez le fichier transcript_keeper.py pour inclure une action de nettoyage simulée dans le bloc finally qui représente la sauvegarde de l'état de l'environnement du script dans un fichier de journal.

Ajoutez ceci à la fin de votre bloc finally dans 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('Le script sacré n\'a pas été trouvé.')
    finally:
        print('Vérification que l\'environnement de conservation reste intact.')
        with open('/home/labex/project/preservation_log.txt', 'a') as log_file:
            log_file.write('Contrôle de conservation terminé\n')

preserve_script()

Exécutez à nouveau le script modifié et vérifiez que le fichier preservation_log.txt contient l'entrée de journal.

L'information ci-dessous devrait être affichée sur votre terminal :

$ python3 ~/project/transcript_keeper.py
Le script sacré n'a pas été trouvé.
Vérification que l'environnement de conservation reste intact.
$ cat /home/labex/project/preservation_log.txt
Contrôle de conservation terminé

Sommaire

Dans ce laboratoire, vous êtes parti à la découverte de l'Égypte antique, où vous avez utilisé vos connaissances sur le bloc finally de Python pour assurer la continuité des scripts sacrés de la reine. Avec le bloc finally, vous avez créé un système robuste qui garantit que certaines actions, telles que la journalisation, sont effectuées indépendamment de toute erreur rencontrée pendant l'exécution.

Grâce à cette aventure mystique, vous avez appris l'importance des actions de nettoyage et de leur mise en œuvre à l'aide du bloc finally de Python. Ce filet de sécurité assure que les opérations critiques de votre script seront terminées, donnant confiance dans la résilience de votre code. Que votre parcours dans le royaume de Python continue d'être aussi éclairant que la sagesse antique de l'Égypte.