Zacznij terazZacznij za darmo

Zmiana katalogu roboczego

Korzystasz z biblioteki open-source, która pozwala trenować głębokie sieci neuronowe na twoich danych. Niestety, podczas trenowania biblioteka zapisuje modele pośrednie (czyli modele wytrenowane na części danych) w bieżącym katalogu roboczym. To dość uciążliwe – nie chcesz przecież za każdym razem uruchamiać skryptu z katalogu, w którym mają być zapisywane modele.

Postanawiasz rozwiązać ten problem, pisząc menedżer kontekstu, który zmienia bieżący katalog roboczy, pozwala trenować modele, a następnie przywraca katalog do pierwotnej lokalizacji. Zadbaj o to, żeby ewentualne błędy podczas trenowania nie blokowały przywrócenia oryginalnego katalogu roboczego.

To ćwiczenie jest częścią kursu

Pisanie funkcji w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Dodaj instrukcję, która pozwoli obsłużyć ewentualne błędy wewnątrz kontekstu.
  • Dodaj instrukcję, która zagwarantuje wywołanie os.chdir(current_dir) – niezależnie od tego, czy wystąpił błąd, czy nie.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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)
Edytuj i uruchom kod