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
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)