작업 디렉터리 변경하기
여러분은 오픈 소스 라이브러리를 사용해 데이터로 딥 뉴럴 네트워크를 학습하고 있어요. 그런데 아쉽게도, 학습 중에 이 라이브러리는 체크포인트 모델(즉, 데이터의 일부로만 학습된 모델)을 현재 작업 디렉터리에 저장합니다. 모델이 저장될 디렉터리에서 스크립트를 실행하고 싶지 않기 때문에, 이 동작이 불편하게 느껴지네요.
이를 해결하기 위해, 현재 작업 디렉터리를 변경했다가 모델을 빌드한 후 원래 위치로 되돌리는 컨텍스트 관리자(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)