Modifier le répertoire de travail
Vous utilisez une bibliothèque open-source qui vous permet d'entraîner des réseaux neuronaux profonds sur vos données. Malheureusement, pendant l'apprentissage, cette bibliothèque écrit des modèles de point de contrôle (c'est-à-dire des modèles qui ont été appris sur une partie des données) dans le répertoire de travail actuel. Vous trouvez ce comportement frustrant parce que vous ne voulez pas avoir à lancer le script à partir du répertoire où les modèles seront sauvegardés.
Vous décidez qu'une façon de résoudre ce problème est d'écrire un gestionnaire de contexte qui modifie le répertoire de travail actuel, vous permet de construire vos modèles, puis réinitialise le répertoire de travail à son emplacement d'origine. Vous devez vous assurer que les erreurs qui surviennent pendant l'apprentissage du modèle ne vous empêchent pas de réinitialiser le répertoire de travail à son emplacement d'origine.
Cet exercice fait partie du cours
Écrire des fonctions en Python
Instructions
- Ajoutez une déclaration qui vous permet de gérer les erreurs qui pourraient survenir dans le contexte.
- Ajoutez une déclaration qui garantit que
os.chdir(current_dir)
sera appelé, qu'il y ait eu une erreur ou non.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
def in_dir(directory):
"""Change current working directory to `directory`,
allow the user to run some code, and change back.
Args:
directory (str): The path to a directory to work in.
"""
current_dir = os.getcwd()
os.chdir(directory)
# Add code that lets you handle errors
____:
yield
# Ensure the directory is reset,
# whether there was an error or not
____:
os.chdir(current_dir)