3

Pythonスクリプトのパスを取得しようとしています。

'sys.argv[0]がPythonスクリプトのパスと名前を教えてくれることは知っています。

どうすればパスを取得できますか?

私は試した:

 print sys.argv[0]
    path = sys.argv[0].split("/")
    scriptpath = "".join(path[0:-1])

ただし、パス区切り文字は追加されません。

4

4 に答える 4

7

__file__次のように使用することをお勧めします。

os.path.dirname(os.path.realpath(__file__))

注:sys.argv[0]別のディレクトリから別のスクリプトを介してスクリプトを呼び出すと、 使用が機能しない場合があります。

于 2012-11-21T23:37:15.283 に答える
3

あなたが探しているos.path.dirname()、あなたが相対的なpathameを持っているかもしれない場合に備えて、あなたも必要os.path.abspath()です

于 2012-11-21T23:17:06.883 に答える
1

パスで文字列操作を試行せず、os.path代わりにモジュールを使用してください。例えば:

scriptpath = os.path.dirname(sys.argv[0])
于 2012-11-21T23:18:02.207 に答える
0

別のStackoverflowスレッドから

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)
于 2012-11-21T23:20:01.873 に答える