【发布时间】:2020-12-03 21:10:10
【问题描述】:
我正在使用 python argparse 来管理命令行选项。 When the number of options becomes large, the help message (what argparse prints when you pass --help) is getting intimidating and hard to read, simply because it is to long.其他程序有时会通过模块化帮助消息来解决此问题:它们仅显示带有 --help 的“核心选项”,并具有 --help-modulea、--help-moduleb 等选项。
我认为 argparse 允许在存在子命令的情况下进行类似的操作,基本上就像 git 所做的那样:./script.py command --help。
然而,我的应用程序没有子命令之类的东西,只有一大组选项(不过可以很好地分组)。
是否有任何(合理的)方法可以用 argparse 做到这一点?
【问题讨论】:
-
您可能只是在寻找argument groups,尽管它们对抑制某些输出没有帮助。为此,您需要定义自己的选项处理程序。
-
我已经在使用参数组对参数进行分组。 (显然)我不确定您所说的“选项处理程序”是什么意思...
-
查看
print_help和format_help的代码。您将看到如何调用HelpFormatter,以及如何将组传递给它。另请查看_help_action类(或类似名称)。我可以想象创建类似的 Action 子类和/或格式化程序来显示您的argument_groups的子集。