LoslegenKostenlos loslegen

Das Arbeitsverzeichnis ändern

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 (also Modelle, die auf einem Teil der Daten trainiert wurden) in das aktuelle Arbeitsverzeichnis. Dieses Verhalten findest du frustrierend, weil du das Skript nicht aus dem Verzeichnis starten möchtest, in dem die Modelle gespeichert werden.

Du beschließt, das Problem zu lösen, indem du einen Context Manager schreibst, der das aktuelle Arbeitsverzeichnis ändert, dich deine Modelle bauen lässt und anschließend das Arbeitsverzeichnis auf seinen ursprünglichen Ort zurücksetzt. Du willst sicherstellen, dass mögliche Fehler während des Modelltrainings nicht verhindern, dass das Arbeitsverzeichnis wieder auf seinen ursprünglichen Ort gesetzt wird.

Diese Übung ist Teil des Kurses

Funktionen in Python schreiben

Kurs anzeigen

Anleitung zur Übung

  • Füge eine Anweisung hinzu, mit der du alle Fehler behandeln kannst, die innerhalb des Kontexts auftreten könnten.
  • Füge eine Anweisung hinzu, die sicherstellt, dass os.chdir(current_dir) aufgerufen wird – unabhängig davon, ob ein Fehler aufgetreten ist oder nicht.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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)
Code bearbeiten und ausführen