コード
import pathlib
import sys
# 1番目
# このファイルのディレクトリ
myDirPath = pathlib.Path(__file__).parent
# 設定ファイルなど
setting = myDirPath / 'setting.json'
print(setting)
# 2番目
# このファイルのディレクトリ
myDirPath = sys.path[0]
# 設定ファイルなど
setting = f'{myDirPath}/setting.json'
print(setting)
# 3番目
# このファイルのディレクトリ
myDirPath = pathlib.Path(sys.path[0])
# 設定ファイルなど
setting = myDirPath / 'setting.json'
print(setting)
※ os.path
は使わないものとする。
sys.path
はモジュールを検索するパスを示す文字列のリストで、pythonでスクリプトの実行時にスクリプトファイルのディレクトリが0番目に記載されるため、今回の目的と一致する。
スクリプトファイルがimport文で呼び出される場合は当然呼び出し元のディレクトリパスになるので、他から呼び出されないスクリプトに限って使用するべきでしょう。
※コメントで簡単な書き方を教えてもらいました。ありがとうございます。