argparse subparser --help output doesn't show the subparser's description

前端 未结 1 644
臣服心动
臣服心动 2021-01-20 22:39

If I create a subparser with a specific help string, this string is not displayed when the user runs myprog command --help:

parser = argparse.Ar         


        
相关标签:
1条回答
  • 2021-01-20 23:28

    The add_parser method accepts (most) of the parameters that a ArgumentParser constructor does.

    https://docs.python.org/3/library/argparse.html#sub-commands

    It's easy to overlook this sentence in the add_subparsers paragraph:

    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');
    

    help for the main parser:

    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
    ...
    

    help for the subparser:

    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
    ...
    
    0 讨论(0)
提交回复
热议问题