Смена рабочей директории
Вы используете библиотеку с открытым исходным кодом для обучения глубоких нейронных сетей на ваших данных. Проблема в том, что во время обучения эта библиотека сохраняет контрольные точки (то есть модели, обученные на части данных) в текущую рабочую директорию. Это неудобно: вам не хочется каждый раз запускать скрипт именно из той папки, куда сохраняются модели.
Вы решаете исправить ситуацию с помощью контекстного менеджера, который временно меняет рабочую директорию, позволяет обучить модели, а затем возвращает исходную директорию. При этом важно гарантировать, что любые ошибки в процессе обучения не помешают восстановить исходную рабочую директорию.
Это упражнение является частью курса
Написание функций на Python
Инструкции к упражнению
- Добавьте блок, который позволяет обрабатывать любые ошибки, возникающие внутри контекста.
- Добавьте блок, который гарантирует вызов
os.chdir(current_dir)в любом случае — как при возникновении ошибки, так и без неё.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
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)