我有以下的測試碼如何使用argparse在單獨的命名空間中使用子分析器參數?
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--verbose", default = 0, type=int)
subparsers = parser.add_subparsers(dest = "parser_name")
parser_lan = subparsers.add_parser('car')
parser_lan.add_argument("--boo")
parser_lan.add_argument("--foo")
parser_serial = subparsers.add_parser('bus')
parser_serial.add_argument("--fun")
print parser.parse_args()
其限定兩個子解析器,具有一組不同的參數。當我打電話testcode作爲
tester.py --verbose 3 car --boo 1 --foo 2
我得到預期的結果
Namespace(boo='1', foo='2', parser_name='car', verbose=3)
我想擁有,而不是從一個單獨的命名空間或字典的每個子分析器,像
Namespace(subparseargs={boo:'1', foo:'2'}, parser_name='car', verbose=3)
東西值
以便來自每個子分析器的參數與主分析器的參數邏輯分離(如本例中的verbose
)。
我怎樣才能做到這一點,用的參數在同命名空間每個子分析器(subparseargs
中的例子)。
不回答你的問題,但現代[argparse包裝](http://stackoverflow.com/q/13248487/989121)比原始argparse更有趣。 – georg