Ändern des Arbeitsverzeichnisses
Du verwendest eine Open-Source-Bibliothek, mit der du tiefe neuronale Netze auf deinen Daten trainieren kannst. Leider schreibt diese Bibliothek während des Trainings Checkpoint-Modelle (d.h. Modelle, die mit einem Teil der Daten trainiert wurden) in das aktuelle Arbeitsverzeichnis. Du findest dieses Verhalten frustrierend, weil du das Skript nicht aus dem Verzeichnis starten willst, in dem die Modelle gespeichert werden.
Du beschließt, dass eine Möglichkeit, dieses Problem zu beheben, darin besteht, einen Kontextmanager zu schreiben, der das aktuelle Arbeitsverzeichnis ändert, dich deine Modelle bauen lässt und dann das Arbeitsverzeichnis auf seinen ursprünglichen Ort zurücksetzt. Du solltest sicherstellen, dass Fehler, die während des Modelltrainings auftreten, dich nicht daran hindern, das Arbeitsverzeichnis auf seinen ursprünglichen Speicherort zurückzusetzen.
Diese Übung ist Teil des Kurses
Funktionen in Python schreiben
Anleitung zur Übung
- Füge eine Anweisung hinzu, mit der du alle Fehler behandeln kannst, die im Kontext auftreten können.
- Füge eine Anweisung hinzu, die sicherstellt, dass
os.chdir(current_dir)
aufgerufen wird, egal ob ein Fehler aufgetreten ist oder nicht.
Interaktive Übung zum Anfassen
Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.
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)