有没有办法让python的optparse在使用--help显示帮助时打印选项或标志的默认值?Python的optparse可以显示选项的默认值吗?
41
A
回答
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]")
7
如果您需要将默认值的编程访问,您可以通过解析器的defaults
属性得到他们(这是一个字典)
7
如果您想要将默认值自动添加到您指定的所有选项中,则可以执行以下操作:
for option in parser.option_list:
if option.default != ("NO", "DEFAULT"):
option.help += (" " if option.help else "") + "[default: %default]"
0
The co对你的问题的评论已经表明有另一种方法来解析名为argparse的参数。它已经在Python 3.2中引入。它实际上弃用optparse
,但使用类似。
argpass
带有不同的格式化类,例如argparse.ArgumentDefaultsHelpFormatter
也会打印默认值,而无需手动操作帮助字符串。
参数Parser对象允许通过指定替代格式化类的 自定义帮助格式。目前,有四个 这样的类:
类argparse.RawDescriptionHelpFormatter
类argparse.RawTextHelpFormatter
类argparse.ArgumentDefaultsHelpFormatter
类argparse.MetavarTypeHelpFormatter
从一个例子python文档:
>>> 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)
0
从文档添加argparse.ArgumentDefaultsHelpFormatter到您的解析器
import argparse
parser = argparse.ArgumentParser(
description='Your application description',
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
:
ArgumentDefaultsHelpFormatter会自动将有关 默认值,每个参数的帮助信息: Blockquote
相关问题
- 1. Python的optparse,默认值和显式选项
- 2. Python optparse默认值vs函数默认值
- 3. 选项卡显示默认值,需要显示我们选择的选项卡
- 4. 默认突出显示的选项卡
- 5. jQuery选择默认选项显示
- 6. 选项选择,不显示默认
- 7. html选择不显示默认选项
- 8. 选择2显示默认值选择
- 9. 选项值默认
- 10. Python optparse不接受选项
- 11. 默认情况下,gitk可以显示合并的差异吗?
- 12. 可选的默认值
- 13. Python的optparse中的有序选项
- 14. 我可以使用可选链给出可选属性的默认值吗?
- 15. 如何在HTML选择标记中显示默认选项值
- 16. 如何通过ajax调用显示默认选择选项值
- 17. 可以计算SQL默认值吗?
- 18. Variant属性可以有默认值吗?
- 19. 选择不显示其默认值
- 20. 默认值显示值C#
- 21. knockout.js HTML选项 - 显示默认值时,可观察到的是空
- 22. 显示默认项目(javascript)
- 23. 选项以2个参数的OptParse
- 24. 如何知道optparse选项是通过命令行还是默认值
- 25. 我们可以使用DefaultIfEmpty显示默认图像吗?
- 26. Wpf Comboxbox可选默认项
- 27. Nuget Pack默认选项值
- 28. 默认值与NG-选项
- 29. 选项字段默认值
- 30. Bigcommerce API - 选项默认值
看到这个:http://stackoverflow.com/questions/12151306/argparse-way-to-include-default-values-in-help – 2014-01-16 09:26:18
如果有人寻求相同的Argparse:[Argparse:包括的方式'--help'中的默认值?](http://stackoverflow.com/a/12151325/562769) – 2014-02-24 07:48:37