我有一个看起来像这样的python文件:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument()
etc...
args = parser.parse_args()
function_one(a=args.a,b=args.b)
function_two(c=args.c,d=args.d,e=args.e)
我想要的是以下
import argparse
parser = argparse.ArgumentParser()
parser_one = parser.add_parser(name1)
parser_one.add_argument('--a')
parser_two = parser.add_parser(name2)
parser_two.add_argument('--d')
args = parser.parse_args()
因此,args
就像字典的字典,而args.name1
就是通常的NameSpace
。
这将使我能够将解析器划分为子解析器,并使用:
调用函数。function_one(**vars(args.name1))
function_two(**vars(args.name2))
我知道函数add_argument_group
,但这在调用NameSpace
之后将参数合并为一个parser_args
。
add_subparsers
也不是解决方案,因为它在子解析器之间是唯一的。