迭代argparse接受的args

时间:2017-03-13 21:53:29

标签: python

我看不清楚如何迭代argparse的接受的 args。我得到了我可以遍历parsed_args结果,但我想要的是迭代解析器配置的参数(即使用optparse你可以迭代args)。

例如:

parser = argparse.ArgumentParser( prog = 'myapp' )
parser.add_argument( '--a',  .. )
parser.add_argument( '--b',  ...) 
parser.add_argument( '--c',  ... )

for arg in parser.args():
    print arg

会导致

--a
--b
--c

2 个答案:

答案 0 :(得分:3)

您可能希望getattr中的args

args = parser.parse_args()
for arg in vars(args):
     print arg, getattr(args, arg)

<强>结果

a None
c None
b None

答案 1 :(得分:2)

如果你想列出选项,你可以这样做:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--foo')
parser.add_argument('--bar')
parser.add_argument('--baz')
for option in parser._optionals._actions:
    print(option.option_strings)
但是,我没有看到迭代它们的实际理由。您始终可以通过--help查看选项。