НачатьНачать бесплатно

Смена рабочей директории

Вы используете библиотеку с открытым исходным кодом для обучения глубоких нейронных сетей на ваших данных. Проблема в том, что во время обучения эта библиотека сохраняет контрольные точки (то есть модели, обученные на части данных) в текущую рабочую директорию. Это неудобно: вам не хочется каждый раз запускать скрипт именно из той папки, куда сохраняются модели.

Вы решаете исправить ситуацию с помощью контекстного менеджера, который временно меняет рабочую директорию, позволяет обучить модели, а затем возвращает исходную директорию. При этом важно гарантировать, что любые ошибки в процессе обучения не помешают восстановить исходную рабочую директорию.

Это упражнение является частью курса

Написание функций на 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)
Редактировать и запускать код