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


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

__file__ を用いると「スクリプトへの相対パス」を取得できます。
ただ、モジュールが__main__のときはセットされないとのことです。

よくわからんですが、py2exeした後はメインのスクリプトでは参照することは出来ませんでした。importしたスクリプトでは依然使えます。

つまりこんな感じ。

script main.py
import sub
import os
print os.path.basename(__file__)
 

script sub.py
import os
print os.path.basename(__file__)
 


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 もご覧ください。