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(),如果你可能有一个相对路径,你也os.path.abspath()需要

于 2012-11-21T23:17:06.883 回答
1

Don't try string operations on paths, use the os.path module instead. E.g.:

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

From another Stackoverflow thread

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 回答