我正在使用argparse
来解析命令行参数。在查看argparse
的文档时,我只能看到使用不同程序名称的选项。
我希望能够使用默认的程序名称,而不必导入sys
。据我所知,在argparse
中没有任何东西会返回程序名称。
import argparse
parser = argparse.ArgumentParser()
args = parser.parse_args()
print(dir(args))
这是输出结果:
['__class__', '__contains__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_get_args', '_get_kwargs']
还有其他方法可以在不导入sys
模块的情况下检索程序名称吗?
from sys import argv
。 - Kevin Londonargparse
导入sys
作为_sys
。所以理论上你可以使用:argparse._sys.argv[0]
。还要注意的是,argparse
从_sys.argv[1:]
获取它解析的命令行字符串。 - hpaulj