如何检查ArgumentParser是否包含参数?

时间:2016-10-14 19:04:18

标签: python argparse

在我创建了我的参数解析器之后。如何检查解析器是否包含参数规则。这里有一些代码来解释我的意思。

from argparse import ArgumentParser

parser = ArgumentParser()
parser.add_argument('--foo')
parser.add_argument('--bar')

'foo' in parser
# => True
'bar' in parser
 # => True
'baz' in parser
 # => False

简而言之,我想知道解析器中是否存在参数。

作为我的程序初始化的一部分,我正在加载几个配置文件。如果配置文件中的设置不在解析器中,我想警告用户。

1 个答案:

答案 0 :(得分:0)

它有点笨拙,但您可以使用非参数运行parse_args并提取生成的Namespace对象的键:

>>> 'foo' in vars(parser.parse_args())
True
>>> 'baz' in vars(parser.parse_args())
False