Python argparse 的选项?

2023-12-25

我正在用 Python 编写一个脚本,并使用 argparse 来解析我的参数。该脚本应该比较可用对准器池中的两个不同的“对准器”,并且每个对准器都有一些配置选项。

我希望能够使用以下方式调用我的脚本:

./script.py --aligner aligner1 --param 12 --aligner aligner2 --param 30 --other_param 28

我想摆脱这种结构,其中第一个 --param 选项“属于”第一个 --aligner 选项,第二个 --param 和 --other_param 选项“属于”第二个 --aligner选项。

argparse 能够进行这种结构化选项解析吗?

如果是这样,最好的方法是什么?如果没有,我还应该看另一个图书馆吗?

我可以使用更好的 UI 设计来代替这个吗?


一般来说,我认为你想要的是不可能的,因为你不能将可选参数值关联在一起。也就是说,我看不到如何关联--param 12 with --aligner aligner1.

However.

您可以使用argparse如下:

p = argparse.ArgumentParser ()
p.add_argument ("--aligner", action="append", nargs="+")

这将创建多个对齐器参数,每个参数至少需要一个参数(对齐器名称)。然后,您可以使用额外的编码方案(您可以在解析器的帮助文本中记录该方案)对每个对齐器的参数进行编码。例如,您可以使用以下命令调用脚本:

./script.py --aligner aligner1 param=12 --aligner aligner2 param=30 other_param=28

然后,您将每个对齐器的附加参数拆分为list, 分割为'='然后创建一个dict。可能会使用一组默认参数进行更新。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python argparse 的选项? 的相关文章

随机推荐