【问题标题】:Multiple grouping using argparser in python在 python 中使用 argparse 进行多重分组
【发布时间】: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 逻辑。谢谢!

标签: python argparse


【解决方案1】:

我有一个类似的问题,我通过使用两个数组作为 a 和 b 来解决它。在 python 中列表很棒,因为您可以轻松地存储列表列表。当解析器遇到变量a时,

大名单的样子

[[a1]],当遇到b1和b2时,

[[a1, b1, b2]],遇到a2,

[[a1, b1, b2], [a2]] 等等。

你喜欢这个解决方案吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-08
    • 2017-12-17
    • 2021-07-24
    • 2021-05-03
    • 2015-02-18
    • 2021-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多