我正在用 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(使用前将#替换为@)