【发布时间】:2021-10-08 09:03:03
【问题描述】:
您好,我想以我在命令行中传递的方式对变量进行分组。考虑以下示例。
shell> python cli.py -a 1 -b 23 -b 3 -a 2 -b 7
所以分组应该发生,因为第二个'a'之前的所有b都应该属于第一个'a',最后一个'b'属于最后一个'a'
所以解析输出后的最终结果应该是
first a {value:1,b:[23,3]}
Second a {value:2,b:[7]}
我尝试了多种使用 argparse 的方法来构建它,但找不到执行它的逻辑。
【问题讨论】:
-
人们已经要求在其他 SO 中对此进行更改,但不,
argparse中没有为此量身定制的内容。您可以指定action='append',但这只会在一个列表中收集所有a,在另一个列表中收集b。通常,参数之间没有任何交互或依赖关系。您必须定义自定义Action类来创建交互 - 或等待某种灵魂为您做这件事:)。但是直接处理sys.argv可能更容易。 -
是的,我可以使用 sys.argv 实现@GustavD 逻辑。谢谢!