2017-03-13 42 views
0

我看不出m如何遍歷接受的 argparse的參數。我得到我可以遍歷parsed_args結果,但我想要的是遍歷解析器配置的參數(即使用optparse你可以遍歷參數)。迭代argparse接受的參數

例如:

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 
+0

所以,你要打印你目前擁有的參數列表? –

+0

'parser._actions' probaby有你想要的 –

回答

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查看選項。

+0

謝謝,多數民衆贊成我到目前爲止,進入內部,我希望避免。我希望能夠有一個可選的UI對話框彈出來輸入參數。爲了做到這一點,我需要編程訪問參數 – ByteMe95

2

你可能會想getattrargs

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

結果

a None 
c None 
b None 
+0

我特別說不是從parse_args()調用 – ByteMe95

+0

@ user136109:你在哪裏具體提到了那個? –