read-eval-print loop

プログラミング関連のメモ

リンクをスクリプトファイルに張ったときスクリプトファイルのパスを取得する

シンボリックリンクを介してスクリプトを実行すると、スクリプト内の__file__にはシンボリックリンクの情報が格納されます。

import os.path

print(__file__)
# -> リンクのパス
print(os.path.dirname(__file__))
# -> リンクの親ディレクトリ

os.path.realpath()を使えばリンクではなくスクリプト自身のパスを取得できます。

print(os.path.realpath(__file__))