argparse subparser --help 输出不显示子解析器的描述
argparse subparser --help output doesn't show the subparser's description
如果我创建一个带有特定帮助字符串的子解析器,当用户运行时该字符串不会显示 myprog command --help
:
parser = argparse.ArgumentParser()
subparsers = parser.add_subparsers(help="sub-command help")
parser_command = subparsers.add_parser("command", help="Issue a command")
parser.parse_args()
顶层帮助显示此 command
子命令,旁边有描述 "Issue a command":
$ python prog.py --help
usage: prog.py [-h] {command} ...
positional arguments:
{command} sub-command help
command Issue a command
optional arguments:
-h, --help show this help message and exit
但是子命令的帮助没有显示这个描述:
$ python prog.py command --help
usage: prog.py command [-h]
optional arguments:
-h, --help show this help message and exit
我期望子命令的帮助打印出子命令的实际用途。 IE。我希望在 python prog.py command --help
.
的输出中某处看到文本 "Issue a command"
有没有办法将此文本包含在子命令的帮助输出中?是否有另一个 subparser 属性可用于提供子命令的描述?
add_parser
方法接受 ArgumentParser
构造函数所接受的(大部分)参数。
https://docs.python.org/3/library/argparse.html#sub-commands
add_subparsers
段中这句话很容易被忽略:
This object has a single method, add_parser(), which takes a command name and any ArgumentParser constructor arguments, and returns an ArgumentParser object that can be modified as usual.
In [93]: parser=argparse.ArgumentParser()
In [94]: sp = parser.add_subparsers(dest='cmd',description='subparses description')
In [95]: p1 = sp.add_parser('foo',help='foo help', description='subparser description')
In [96]: p1.add_argument('--bar');
主要解析器的帮助:
In [97]: parser.parse_args('-h'.split())
usage: ipython3 [-h] {foo} ...
optional arguments:
-h, --help show this help message and exit
subcommands:
subparses description
{foo}
foo foo help
...
子解析器的帮助:
In [98]: parser.parse_args('foo -h'.split())
usage: ipython3 foo [-h] [--bar BAR]
subparser description
optional arguments:
-h, --help show this help message and exit
--bar BAR
...
如果我创建一个带有特定帮助字符串的子解析器,当用户运行时该字符串不会显示 myprog command --help
:
parser = argparse.ArgumentParser()
subparsers = parser.add_subparsers(help="sub-command help")
parser_command = subparsers.add_parser("command", help="Issue a command")
parser.parse_args()
顶层帮助显示此 command
子命令,旁边有描述 "Issue a command":
$ python prog.py --help
usage: prog.py [-h] {command} ...
positional arguments:
{command} sub-command help
command Issue a command
optional arguments:
-h, --help show this help message and exit
但是子命令的帮助没有显示这个描述:
$ python prog.py command --help
usage: prog.py command [-h]
optional arguments:
-h, --help show this help message and exit
我期望子命令的帮助打印出子命令的实际用途。 IE。我希望在 python prog.py command --help
.
有没有办法将此文本包含在子命令的帮助输出中?是否有另一个 subparser 属性可用于提供子命令的描述?
add_parser
方法接受 ArgumentParser
构造函数所接受的(大部分)参数。
https://docs.python.org/3/library/argparse.html#sub-commands
add_subparsers
段中这句话很容易被忽略:
This object has a single method, add_parser(), which takes a command name and any ArgumentParser constructor arguments, and returns an ArgumentParser object that can be modified as usual.
In [93]: parser=argparse.ArgumentParser()
In [94]: sp = parser.add_subparsers(dest='cmd',description='subparses description')
In [95]: p1 = sp.add_parser('foo',help='foo help', description='subparser description')
In [96]: p1.add_argument('--bar');
主要解析器的帮助:
In [97]: parser.parse_args('-h'.split())
usage: ipython3 [-h] {foo} ...
optional arguments:
-h, --help show this help message and exit
subcommands:
subparses description
{foo}
foo foo help
...
子解析器的帮助:
In [98]: parser.parse_args('foo -h'.split())
usage: ipython3 foo [-h] [--bar BAR]
subparser description
optional arguments:
-h, --help show this help message and exit
--bar BAR
...