使用 argparse subparser 显示命令子组
Display subgroups of commands with argparse subparser
我目前正在 Python 中开发一个包含 ~40 个子命令的程序。解析器是使用 argparse 完成的。随着子命令数量的增加,搜索感兴趣的命令变得越来越复杂。目前显示如下。
$ pgrm -h
Usage: pgrm [-h] [-v] ...
Blabla bla.
Main command arguments:
-h, --help show this help message and exit
-v, --version show program's version number and exit
Available sub-commands:
sub_cmd Some description about the command…
sub_cmd Some description about the command…
sub_cmd Some description about the command…
sub_cmd Some description about the command…
sub_cmd Some description about the command…
sub_cmd Some description about the command…
sub_cmd Some description about the command…
sub_cmd Some description about the command…
sub_cmd Some description about the command…
sub_cmd Some description about the command…
sub_cmd Some description about the command…
Usage example:
'pgrm sub-command -h' for more information.
我想更改显示以显示类别(例如 updating/inserting/selecting)和关联的子命令。
$ pgrm -h
Usage: pgrm [-h] [-v] ...
Blabla bla.
Main command arguments:
-h, --help show this help message and exit
-v, --version show program's version number and exit
Available sub-commands:
Updating
sub_cmd Some description about the command…
sub_cmd Some description about the command…
sub_cmd Some description about the command…
sub_cmd Some description about the command…
Selecting
sub_cmd Some description about the command…
sub_cmd Some description about the command…
sub_cmd Some description about the command…
Inserting
sub_cmd Some description about the command…
sub_cmd Some description about the command…
sub_cmd Some description about the command…
sub_cmd Some description about the command…
是否有任何解决方案可以在 argparser 中使用来实现这样的 CLI?
谢谢
几年前我探讨过这个问题
http://bugs.python.org/issue9341
允许对 argparse 子命令进行分组
如果我正确阅读了我建议的补丁,它只需要更改 _SubParsersAction
class,而不需要进一步更改 HelpFormatter
或 ArgumentParser
classes.
我目前正在 Python 中开发一个包含 ~40 个子命令的程序。解析器是使用 argparse 完成的。随着子命令数量的增加,搜索感兴趣的命令变得越来越复杂。目前显示如下。
$ pgrm -h
Usage: pgrm [-h] [-v] ...
Blabla bla.
Main command arguments:
-h, --help show this help message and exit
-v, --version show program's version number and exit
Available sub-commands:
sub_cmd Some description about the command…
sub_cmd Some description about the command…
sub_cmd Some description about the command…
sub_cmd Some description about the command…
sub_cmd Some description about the command…
sub_cmd Some description about the command…
sub_cmd Some description about the command…
sub_cmd Some description about the command…
sub_cmd Some description about the command…
sub_cmd Some description about the command…
sub_cmd Some description about the command…
Usage example:
'pgrm sub-command -h' for more information.
我想更改显示以显示类别(例如 updating/inserting/selecting)和关联的子命令。
$ pgrm -h
Usage: pgrm [-h] [-v] ...
Blabla bla.
Main command arguments:
-h, --help show this help message and exit
-v, --version show program's version number and exit
Available sub-commands:
Updating
sub_cmd Some description about the command…
sub_cmd Some description about the command…
sub_cmd Some description about the command…
sub_cmd Some description about the command…
Selecting
sub_cmd Some description about the command…
sub_cmd Some description about the command…
sub_cmd Some description about the command…
Inserting
sub_cmd Some description about the command…
sub_cmd Some description about the command…
sub_cmd Some description about the command…
sub_cmd Some description about the command…
是否有任何解决方案可以在 argparser 中使用来实现这样的 CLI?
谢谢
几年前我探讨过这个问题
http://bugs.python.org/issue9341 允许对 argparse 子命令进行分组
如果我正确阅读了我建议的补丁,它只需要更改 _SubParsersAction
class,而不需要进一步更改 HelpFormatter
或 ArgumentParser
classes.