web-dev-qa-db-ja.com

実行しているPythonスクリプトのパスを取得する方法

重複:
Pythonでは、現在実行しているファイルのパスと名前を取得するにはどうすればよいですか?

実行しているPythonスクリプトのパスを取得する方法を教えてください。私はdirname(sys.argv[0])をやっていました、しかし、Macの上で私はファイル名だけを得ます - 私がWindowsのようにフルパスではありません。

私のアプリケーションがどこから起動されたとしても、私は自分のスクリプトファイルに関連するファイルを開きたいのです。

327
user34537

os.path.realpath(__file__)はあなたに現在のファイルのパスを与え、パス内のシンボリックリンクを解決します。これは私のMacではうまくいきます。

416
jblocksom

Pythonの7.2に飛び込みなさい: 道を見つけること

import sys, os

print('sys.argv[0] =', sys.argv[0])             
pathname = os.path.dirname(sys.argv[0])        
print('path =', pathname)
print('full path =', os.path.abspath(pathname)) 
92
Jon W
import os
print os.path.abspath(__file__)
83
Jason Coon

Py2exeを使ってあなたのスクリプトをコンパイルすることを計画しているなら、これのために認められた解決策はうまくいきません。あなたがそうすることを計画しているなら、これは機能的に同等なものです:

os.path.dirname(sys.argv[0])

Py2exeは__file__変数を提供しません。参考: http://www.py2exe.org/index.cgi/Py2exeEnvironment

36
Dan