作業ディレクトリを変更する
あなたは、データ上で深層ニューラルネットワークを学習できるオープンソースのライブラリを使っています。ところが学習中、このライブラリはチェックポイントモデル(つまり、データの一部で学習済みのモデル)を現在の作業ディレクトリに書き出します。モデルが保存されるディレクトリからスクリプトを起動したくないあなたにとって、この挙動は不便です。
そのため、現在の作業ディレクトリを一時的に変更してモデルを構築し、処理後に元の場所へ戻すコンテキストマネージャーを書くことにします。モデルの学習中にエラーが発生しても、作業ディレクトリを必ず元の場所に戻せるようにしておきたいですね。
この演習はコースの一部です
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)