4

我在 Python 中有一个实用程序模块,它需要知道正在使用它的应用程序的名称。实际上,这意味着为启动应用程序而调用的顶级 python 脚本的名称(即 __name== "__main__" 是真的)。__name__ 给了我当前 python 文件的名称,但是我如何获得调用链中最上面的文件的名称?

4

2 回答 2

6

将我的 Google 查询切换到“如何从 python 中找到进程名称”与如何找到“顶级脚本名称”之后,我发现这个主题的处理过于彻底。其摘要如下:

import __main__
import os

appName = os.path.basename(__main__.__file__).strip(".py")
于 2013-05-10T04:17:20.433 回答
2

您可以为此使用该inspect模块。例如:

一个.py

#!/usr/bin/python

import b

b.py

#!/usr/bin/python

import inspect

print inspect.stack()[-1][1]

运行python b.py打印b.py。运行python a.py打印a.py

但是,我想把这个建议sys.argv[0]作为一个更明智和惯用的建议来表示赞同。

于 2013-05-10T03:45:23.353 回答