시작하기무료로 시작하기

작업 디렉터리 변경하기

여러분은 오픈 소스 라이브러리를 사용해 데이터로 딥 뉴럴 네트워크를 학습하고 있어요. 그런데 아쉽게도, 학습 중에 이 라이브러리는 체크포인트 모델(즉, 데이터의 일부로만 학습된 모델)을 현재 작업 디렉터리에 저장합니다. 모델이 저장될 디렉터리에서 스크립트를 실행하고 싶지 않기 때문에, 이 동작이 불편하게 느껴지네요.

이를 해결하기 위해, 현재 작업 디렉터리를 변경했다가 모델을 빌드한 후 원래 위치로 되돌리는 컨텍스트 관리자(context manager)를 작성하려고 합니다. 특히, 모델 학습 중 오류가 발생하더라도 작업 디렉터리를 반드시 원래 위치로 되돌릴 수 있어야 합니다.

이 연습은 강의의 일부입니다

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)
코드 편집 및 실행