【发布时间】:2014-08-02 13:11:36
【问题描述】:
我使用下面的简单代码来解析一些参数;请注意,其中之一是必需的。不幸的是,当用户在不提供参数的情况下运行脚本时,显示的用法/帮助文本并不表示存在非可选参数,我觉得这很混乱。如何让 python 表明一个参数不是可选的?
代码如下:
import argparse
if __name__ == '__main__':
parser = argparse.ArgumentParser(
description='Foo')
parser.add_argument('-i','--input', help='Input file name', required=True)
parser.add_argument('-o','--output', help='Output file name', default="stdout")
args = parser.parse_args()
print ("Input file: %s" % args.input )
print ("Output file: %s" % args.output )
在不提供所需参数的情况下运行上述代码时,我得到以下输出:
usage: foo.py [-h] -i INPUT [-o OUTPUT]
Foo
optional arguments:
-h, --help show this help message and exit
-i INPUT, --input INPUT
Input file name
-o OUTPUT, --output OUTPUT
Output file name
【问题讨论】:
-
在用法行中,
-i INPUT部分没有被方括号括起来,这微妙地表明确实是必需的。此外,您可以通过help参数手动解释这一点 -
@JaimeRGP 是的,但这还不够,当然,它也不够突出。为所需参数分配的组名
optional arguments仍然具有误导性。