如何更改 argparse 中 nargs=* 的元变量值?
How to change the metavar value for nargs=* in argparse?
我想将帮助消息中 -args 选项后面的值更改为 "arg1 arg2 .." 而不是“[arg [arg ...]]”。
我试过更改元变量值,但它只会将输出更改为“[arg1 arg2 ... [arg1 arg2 ... ...]]”。
这是我的代码:-
arg_parser.add_argument('-args', action='store', default=None, nargs='*' ,dest='arg',
help = "arguments passed to the program.")
准确的输出是:-
-args [arg [arg ...]]
arguments passed to the program.
我想要的输出:-
-args [arg1 arg2 ..] arguments passed to the program
您可以通过删除 -
:
使 args
成为位置参数而不是可选参数
parser.add_argument('args', nargs='*',
help = "[arg1 arg2 ..] arguments passed to the program.")
由于您的 nargs
设置为 *
,这并没有真正改变命令行何时可以成功处理的任何内容。
不显示位置参数的可选值列表 ([arg [arg ...]]
),仅显示名称。使用 help
如上所述输入您的自定义文本然后得到您想要的:
positional arguments:
args [arg1 arg2 ..] arguments passed to the program.
使用元组“metavar=('arg1','arg2')”应该显示
[arg1 ... [arg2 ...]]
[] 和 ... 固定为“*”。 'nargs=2' 生成更简单的显示。
除此之外,您必须继承 Formater 并进行手术。
我想将帮助消息中 -args 选项后面的值更改为 "arg1 arg2 .." 而不是“[arg [arg ...]]”。
我试过更改元变量值,但它只会将输出更改为“[arg1 arg2 ... [arg1 arg2 ... ...]]”。
这是我的代码:-
arg_parser.add_argument('-args', action='store', default=None, nargs='*' ,dest='arg',
help = "arguments passed to the program.")
准确的输出是:-
-args [arg [arg ...]]
arguments passed to the program.
我想要的输出:-
-args [arg1 arg2 ..] arguments passed to the program
您可以通过删除 -
:
args
成为位置参数而不是可选参数
parser.add_argument('args', nargs='*',
help = "[arg1 arg2 ..] arguments passed to the program.")
由于您的 nargs
设置为 *
,这并没有真正改变命令行何时可以成功处理的任何内容。
不显示位置参数的可选值列表 ([arg [arg ...]]
),仅显示名称。使用 help
如上所述输入您的自定义文本然后得到您想要的:
positional arguments:
args [arg1 arg2 ..] arguments passed to the program.
使用元组“metavar=('arg1','arg2')”应该显示
[arg1 ... [arg2 ...]]
[] 和 ... 固定为“*”。 'nargs=2' 生成更简单的显示。
除此之外,您必须继承 Formater 并进行手术。