Python optparse metavar

时间:2008-12-03 12:36:12

标签: python optparse

我不确定optparse的{​​{1}}参数是用来做什么的。我看到它四处使用,但我看不出它的用途。

有人能说清楚吗?感谢。

5 个答案:

答案 0 :(得分:28)

正如@Guillaume所说,它用于产生帮助。如果要使用带参数的选项(例如文件名),可以将metavar参数添加到add_option调用,以便在帮助消息中输出首选参数名称/描述符。来自the current module documentation

usage = "usage: %prog [options] arg1 arg2"
parser = OptionParser(usage=usage)
parser.add_option("-f", "--filename",
                  metavar="FILE", help="write output to FILE"),

会产生这样的帮助:

usage: <yourscript> [options] arg1 arg2

options:
  -f FILE, --filename=FILE

“ - f”之后的“FILE”和“--filename”来自metavar。

答案 1 :(得分:5)

答案 2 :(得分:0)

metavar是用于在选项后的屏幕中打印的变量。通常用于选项后的建议输入为用户FILEINTSTRING。如果没有metavaroptparse将在您添加的选项后打印dest值。

答案 3 :(得分:0)

对metavar有另一种有意义的用法,其中一个人希望使用'dest'作为参数lookup-tag,但是通过metavar掩盖帮助消息。 (例如,使用subparser时有时很方便)。 (如S.Lott的评论所示)。

parser.add_argument(
        'my_fancy_tag',
        help='Specify destination',
        metavar='helpful_message'
        )

或同样

parser.add_argument(
        dest='my_fancy_tag',
        help='Specify destination',
        metavar='helpful_message'
        )

帮助将显示metavar:

./parse.py -h usage: parser [-h] destination

positional arguments:   
  helpful_message  Specify destination

但是dest会在命名空间中存储fancy_tag:

./parse.py test 
Namespace(my_fancy_tag='test')

答案 4 :(得分:0)

现在最好使用argparse库而不是optparse。

给出here的原因。