python のスクリプト(.py) を作って、スクリプト内で自分自身のファイル名を種痘する場合のお話です。
abc.py ファイル を実行した場合に、 abc.log のようなログファイルを作る際に使えます。
カレントディレクトリを起点にしたファイル名
1 |
__file__ |
ここからは、次のようにしてモジュールを読み込む必要があります。
1 |
from os import path |
ディレクトリを除いたファイル名
1 |
path.basename(__file__) |
ディレクトリに対してこれを実行すると、ディレクトリ名が取得できます。
ファイル名(拡張子なし)
1 |
path.splitext(path.basename(__file__))[0] |
“.” で文字列を区切ってリストにします。 “a.b.c” のように “.” が2つ以上ある場合は 最後の “.” で区切って (“a.b”, “c”) を返します。
path.basename(__file__)[0] をファイルの存在するディレクトリで実行した場合も同じ結果になります。 (crontab などで実行すると思わぬ結果になります。 “a/b.py” が (“a/b”, “.py”) になります。)
絶対パス
1 |
path.abspath(__file__) |
ディレクトリ
相対パス
1
path.dirname(__file__)
1 |
path.dirname(__file__) |
絶対パス
1 |
path.abspath(path.dirname(__file__)) |
上の相対パスを path.abspath
で絶対パスにしています。