【发布时间】:2019-03-16 22:00:55
【问题描述】:
我正在尝试获取 子解析器 的帮助屏幕,以显示可选参数上方(之前)的必需参数。
我按照Argparse: Required arguments listed under "optional arguments"? 给出的最后一个答案,但无法让所需的参数出现在可选参数的上方。
这是我的代码 sn-p:
## using Python 3.6.3
import argparse
from argparse import RawTextHelpFormatter
main_parser = argparse.ArgumentParser(prog="myProg")
subparsers = main_parser.add_subparsers()
## common to all sub-parsers
common_parser = argparse.ArgumentParser(add_help=False)
common_parser.add_argument('foo')
optional = common_parser._action_groups.pop()
required = common_parser.add_argument_group('required arguments')
required.add_argument("-p", type=int, required=True, help='help for -p')
optional.add_argument('-x', help='help for -x')
common_parser._action_groups.append(optional)
abcd_parser = subparsers.add_parser("abcd", parents=[common_parser])
wxyz_parser = subparsers.add_parser("wxyz", parents=[common_parser])
args = main_parser.parse_args()
输出是:
$ ./myProg abcd -h
usage: myProg abcd [-h] -p P [-x X] foo
positional arguments:
foo
optional arguments:
-h, --help show this help message and exit
-x X help for -x
required arguments:
-p P help for -p
但是,我希望输出看起来像:
$ ./myProg abcd -h
usage: myProg abcd [-h] -p P [-x X] foo
positional arguments:
foo
required arguments:
-p P help for -p
optional arguments:
-h, --help show this help message and exit
-x X help for -x
是否有可能得到想要的结果?需要做什么?
谢谢
--安德鲁
【问题讨论】:
标签: python-3.6 argparse