De werkmap wijzigen
Je gebruikt een open-sourcelibrary waarmee je deep neural networks kunt trainen op je data. Helaas schrijft deze library tijdens het trainen checkpointmodellen (modellen die op een deel van de data zijn getraind) weg in de huidige werkmap. Dat vind je onhandig, want je wilt het script niet hoeven starten vanuit de map waar de modellen worden opgeslagen.
Je besluit dit op te lossen met een contextmanager die de huidige werkmap verandert, je je modellen laat bouwen en daarna de werkmap terugzet naar de oorspronkelijke locatie. Je wilt er zeker van zijn dat eventuele fouten tijdens het trainen van het model niet voorkomen dat de werkmap weer naar de oorspronkelijke locatie wordt teruggezet.
Deze oefening maakt deel uit van de cursus
Functies schrijven in Python
Oefeninstructies
- Voeg een statement toe waarmee je eventuele fouten binnen de context kunt afhandelen.
- Voeg een statement toe dat garandeert dat
os.chdir(current_dir)wordt aangeroepen, of er nu een fout was of niet.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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)