実行中のカレントディレクトリをスクリプトがあるディレクトリに固定
vscode上で実行するときなど、実行時のディレクトリがスクリプトがおいてあるディレクトリでないときなどがある。
そのときにファイル処理などを行うと、ファイルのパスを適切に設定しないと、ファイルが見つからずエラーが起こってしまう。
そのときはこれをファイルの一番上に追加するとうまくいく。
sample.py
import os
os.chdir(os.path.dirname(os.path.abspath(__file__)))
-
__file__
でスクリプトのパスを取得 -
os.path.abspath()
で絶対パスに変更 -
os.path.dirname()
でパスからそのディレクトリを取得 -
os.chdir()
でそのディレクトリにカレントディレクトリを変更
こうすることで、どこから実行してもスクリプトがあるディレクトリからの相対パスでファイルの読みこみを行うことができる。