【发布时间】:2011-06-19 13:26:29
【问题描述】:
我想在 Python 程序中获取操作系统的 argv[0] 的真实值。 Python 的 sys.argv[0] 不是这个值:它是正在执行的 Python 脚本的名称(有一些例外)。我想要的是一个 foo.py,它在执行时会打印“somestring”
exec -a "somestring" python foo.py
小程序
#! /usr/bin/env python
import sys
print sys.argv[0]
将改为打印“foo.py”。
有谁知道如何获得这个? Python C API 中有一些相关的函数:e.g. Py_GetProgramName。但这似乎并没有在任何地方暴露于 Python 世界。 Py_GetProgramFullPath 从 argv[0] 工作,但它试图获取 Python 解释器的路径。 (这个值被传播到 sys.executable,所以那个变量也不对。)我真的需要写一个 C 模块来获取这个值吗?
编辑:还问过(但没有帮助回答)here。
【问题讨论】:
标签: python