Python optparse metavar

26
我不确定 optparsemetavar 参数用途是什么。我看到它被广泛使用,但却看不懂它的用法。
能否有人向我解释清楚一下?谢谢。
5个回答

31

正如@Guillaume所说,它用于生成帮助信息。如果您想要一个带参数的选项,例如文件名,您可以在add_option调用中添加metavar参数,以便将您首选的参数名称/描述符输出到帮助消息中。来自当前模块文档

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”和“--filename”后面的“FILE”来自于metavar。


5

metavar="helpfulname" 可以为帮助信息设置一个有用的名称,与 dest="name" 不同。dest="name" 对用户可能没有帮助。 - S.Lott

0

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

原因可以在这里找到。


0

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


0

有另一个有意义的使用场景可以使用 metavar,其中一个想要将“dest”用作参数查找标记,但通过 metavar 掩盖帮助消息(例如,在使用子解析器时有时很方便)。 (如 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'
        )

帮助将显示元变量:

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

positional arguments:   
  helpful_message  Specify destination

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接