在使用--help显示帮助时,有没有办法让Python的optparse打印成为选项或标志的默认值?
答案 0 :(得分:54)
尝试使用%default
字符串占位符:
# This example taken from http://docs.python.org/library/optparse.html#generating-help
parser.add_option("-m", "--mode",
default="intermediate",
help="interaction mode: novice, intermediate, "
"or expert [default: %default]")
答案 1 :(得分:7)
如果您需要以编程方式访问默认值,您可以通过解析器的defaults
属性(它是一个字典)来访问它们
答案 2 :(得分:7)
如果您想自动为您指定的所有选项添加默认值,您可以执行以下操作:
for option in parser.option_list:
if option.default != ("NO", "DEFAULT"):
option.help += (" " if option.help else "") + "[default: %default]"
答案 3 :(得分:0)
对您的问题的评论已经表明还有另一种解析名为argparse的参数的方法。它已在Python 3.2中引入。它实际上已弃用optparse
,但使用方式相同。
argpass
带有不同的格式化类,例如argparse.ArgumentDefaultsHelpFormatter
也会打印默认值,而不必手动操作帮助字符串。
ArgumentParser对象允许自定义帮助格式 指定备用格式化类。目前,有四个 这样的课程:
class argparse.RawDescriptionHelpFormatter
class argparse.RawTextHelpFormatter
class argparse.ArgumentDefaultsHelpFormatter
class argparse.MetavarTypeHelpFormatter
python docs中的一个例子:
>>> parser = argparse.ArgumentParser(
... prog='PROG',
... formatter_class=argparse.ArgumentDefaultsHelpFormatter)
>>> parser.add_argument('--foo', type=int, default=42, help='FOO!')
>>> parser.add_argument('bar', nargs='*', default=[1, 2, 3], help='BAR!')
>>> parser.print_help()
usage: PROG [-h] [--foo FOO] [bar [bar ...]]
positional arguments:
bar BAR! (default: [1, 2, 3])
optional arguments:
-h, --help show this help message and exit
--foo FOO FOO! (default: 42)
答案 4 :(得分:0)
将argparse.ArgumentDefaultsHelpFormatter添加到您的解析器
import argparse
parser = argparse.ArgumentParser(
description='Your application description',
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
来自文档:
ArgumentDefaultsHelpFormatter会自动添加有关的信息 每个参数帮助消息的默认值: 块引用