Cambiare la directory di lavoro
Stai usando una libreria open source che ti permette di addestrare deep neural networks sui tuoi dati. Purtroppo, durante l’addestramento, questa libreria scrive i checkpoint dei modelli (cioè modelli addestrati su una parte dei dati) nella directory di lavoro corrente. Questa cosa ti irrita perché non vuoi dover avviare lo script dalla directory in cui verranno salvati i modelli.
Decidi quindi di risolvere il problema scrivendo un context manager che cambi la directory di lavoro corrente, ti lasci costruire i modelli e poi reimposti la directory di lavoro alla posizione originale. Vuoi essere sicuro che eventuali errori durante l’addestramento del modello non impediscano di ripristinare la directory di lavoro alla posizione iniziale.
Questo esercizio fa parte del corso
Scrivere funzioni in Python
Istruzioni dell'esercizio
- Aggiungi un’istruzione che ti permetta di gestire eventuali errori che potrebbero verificarsi all’interno del context.
- Aggiungi un’istruzione che garantisca che
os.chdir(current_dir)venga chiamato, sia in caso di errore sia in assenza di errori.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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)