Python ArgParse用一个参数调用一组参数



是否有一种方法可以只用一个命令填充一组参数?

例如:如果我有三个参数(-a——AGE (int), -n——NAME (str), -g——GRADE (int))

通常我会指定所有这些参数(python main.py -a __ -n __ -g __)。是否有一种方法可以使我可以运行python main.py——FOO,这将导致(例如)python main.py -a 6 -n Jim - g2运行?

您可以定义一个自定义操作(这可能涉及了解-a,-n-g的工作方式,而不是您想要的):

class ANG(argparse.Action):
def __call__(self, parser, namespace, values, option_string):
setattr(namespace, 'AGE', 6)
setattr(namespace, 'NAME', 'Jim')
setattr(namespace, 'GRADE', 2)
...
p.add_argument('--FOO', action=ANG)

据我所知,没有(简单的)方法可以使--FOO只是将-a,6,-n,Jim,-g2附加到p.parse_args将解析的参数列表中。

还有一个问题是,您是否希望后续使用-a,-n和/或-g来覆盖--FOO

最新更新