Pythonスクリプトのパスを取得しようとしています。
'sys.argv[0]がPythonスクリプトのパスと名前を教えてくれることは知っています。
どうすればパスを取得できますか?
私は試した:
print sys.argv[0]
path = sys.argv[0].split("/")
scriptpath = "".join(path[0:-1])
ただし、パス区切り文字は追加されません。
Pythonスクリプトのパスを取得しようとしています。
'sys.argv[0]がPythonスクリプトのパスと名前を教えてくれることは知っています。
どうすればパスを取得できますか?
私は試した:
print sys.argv[0]
path = sys.argv[0].split("/")
scriptpath = "".join(path[0:-1])
ただし、パス区切り文字は追加されません。
__file__
次のように使用することをお勧めします。
os.path.dirname(os.path.realpath(__file__))
注:sys.argv[0]
別のディレクトリから別のスクリプトを介してスクリプトを呼び出すと、 使用が機能しない場合があります。
あなたが探しているos.path.dirname()
、あなたが相対的なpathameを持っているかもしれない場合に備えて、あなたも必要os.path.abspath()
です
パスで文字列操作を試行せず、os.path
代わりにモジュールを使用してください。例えば:
scriptpath = os.path.dirname(sys.argv[0])
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)