実行しているスクリプトのパスを求める

「実行しているスクリプトのパスを求める」の編集履歴(バックアップ)一覧はこちら

実行しているスクリプトのパスを求める」(2009/07/08 (水) 13:56:05) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

__file__ を用いると「スクリプトへの相対パス」を取得できます。 ただ、モジュールが__main__のときはセットされないとのことです。 よくわからんですが、py2exeした後はメインのスクリプトでは参照することは出来ませんでした。importしたスクリプトでは依然使えます。 つまりこんな感じ。 script main.py #code(){{ import sub import os print os.path.basename(__file__) }} script sub.py #code(){{ import os print os.path.basename(__file__) }} #code(){{ C:\script\library.zip\sub.pyc C:\script\main Traceback (most recent call last): File "renderClient.py", line 638, in <module> File "wx\_core.pyc", line 7819, in __init__ File "wx\_core.pyc", line 7416, in _BootstrapApp File "renderClient.py", line 378, in OnInit NameError: global name '__file__' is not defined }} (説明用コードですから実際は動かんと思いますよ) まぁたしかにexe化しちゃえばもうスクリプトないわけで。 importしたのはlibrary.zip内にまだあるし。
__file__ を用いると「スクリプトへの相対パス」を取得できます。 ただ、モジュールが__main__のときはセットされないとのことです。 よくわからんですが、py2exeした後はメインのスクリプトでは参照することは出来ませんでした。importしたスクリプトでは依然使えます。 つまりこんな感じ。 script main.py #highlight(python){{ import sub import os print os.path.basename(__file__) }} script sub.py #highlight(python){{ import os print os.path.basename(__file__) }} #highlight(python){{ C:\script\library.zip\sub.pyc C:\script\main Traceback (most recent call last): File "renderClient.py", line 638, in <module> File "wx\_core.pyc", line 7819, in __init__ File "wx\_core.pyc", line 7416, in _BootstrapApp File "renderClient.py", line 378, in OnInit NameError: global name '__file__' is not defined }} (説明用コードですから実際は動かんと思いますよ) まぁたしかにexe化しちゃえばもうスクリプトないわけで。 importしたのはlibrary.zip内にまだあるし。

表示オプション

横に並べて表示:
変化行の前後のみ表示:
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。