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