我正在编写一个CLI工具,该工具需要接受“搜索”命令的2种不同样式作为其第一个参数:一个正好需要1个额外的位置参数,而另一个正好需要3个额外的位置参数。
例如:tool search x
或tool search x y z
都有效(无效 tool search x y
),但可以使用完全不同的功能。
除“搜索”外,还有一些其他命令。我还需要控制确切的错误消息和退出代码(我认为可以通过ArgumentParser.exit()来实现)
您将如何使用argparse实现此目标?凭直觉,我认为我需要对add_argument
使用search
两次,而nargs
可能不同,dest
也可能不同,但不确定是否可行。
老实说,我打算直接用sys.argv
来做到这一点,但我一直在阅读那是多么顽皮的(我可以理解为什么,但这似乎是一种特例),因此只需检查一下这是否很容易也是argparse。
谢谢。