在argparse包中,metavar
参数修改显示的程序帮助信息。以下程序并非旨在工作,它只是用于演示metavar
参数的行为。
import argparse
if __name__ == '__main__':
parser = argparse.ArgumentParser(description = "Print a range.")
parser.add_argument("-range1", nargs = 3, type = int, help = "Specify range with: start, stop, step.", metavar = ("start", "stop", "step"))
parser.add_argument("-range2", nargs = 3, type = int, help = "Specify range with: start, stop, step.", metavar = "r2")
对应的帮助信息是:
usage: main.py [-h] [-range1 start stop step] [-range2 r2 r2 r2]
Print a range.
optional arguments:
-h, --help show this help message and exit
-range1 start stop step
Specify range with: start, stop, step.
-range2 r2 r2 r2 Specify range with: start, stop, step.
-range1
请注意和后面的区别-range2
。显然-range1
是帮助消息的首选方式。
到目前为止,我对一切都很清楚。但是,如果我将可选-range1
参数更改为位置range1
参数,则argparse无法处理metavar
参数 ( ValueError: too many values to unpack
) 的元组。
我能够让它工作的唯一方法-range2
就是完成。但是,帮助信息远没有-range1
案例那么好。
有没有办法获得与案例相同的帮助信息,-range1
但使用位置参数而不是可选参数?