argparse:根据选择读取一定数量的参数,具体取决于选择

问题描述 投票:0回答:0

我正在用

argparse
编写一个 Python 3 脚本,我想将一个分布名称作为参数,然后是该分布的许多参数,具体取决于所选择的分布。我希望帮助文本看起来像这样:

usage: myscript.py [-h]
                    {dirac <value> | normal <mean> <standard_distribution> | gamma_bernoulli <bernoulli_probability> <gamma_mean> <gamma_concentration> }
                    <other arguments>

意思是:

  • 如果用户选择
    dirac
    分布,他们必须为该分布指定
    value
  • 如果用户选择
    normal
    分布,他们必须为该分布指定
    mean
    standard_distribution
    ,以及
  • 如果用户选择
    gamma_bernoulli
    分布,他们必须为该分布指定
    bernoulli_probability
    gamma_mean
    gamma_concentration

然后我希望在那之后能够像平常一样解析其他参数。

我怎样才能用

argparse
实现这个目标?

我已经尝试使用子解析器执行此操作,但这导致我之后输入的参数(独立于子命令)不被识别为选项。

python python-3.x argparse
© www.soinside.com 2019 - 2024. All rights reserved.