Python optparse metavar
Asked Answered
H

5

27

I am not sure what optparse's metavar parameter is used for. I see it is used all around, but I can't see its use.

Can someone make it clear to me? Thanks.

Hamper answered 3/12, 2008 at 12:36 Comment(0)
M
32

As @Guillaume says, it's used for generating help. If you want to have an option that takes an argument, such as a filename, you can add the metavar parameter to the add_option call so your preferred argument name/descriptor is output in the help message. From 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"),

would produce help like this:

usage: <yourscript> [options] arg1 arg2

options:
  -f FILE, --filename=FILE

The "FILE" after the "-f" and the "--filename" comes from the metavar.

Mure answered 3/12, 2008 at 12:48 Comment(0)
S
5

metavar seems to be used for generating help : http://www.python.org/doc/2.5.2/lib/optparse-generating-help.html

Stopgap answered 3/12, 2008 at 12:42 Comment(1)
metavar="helpfulname" customizes the help message with a helpful name; different from the dest="name". The dest="name" might not be helpful to users.Nepotism
F
0

metavar is a variable used for print in the screen after option. Usually used for suggestion input after option are FILE or INT or STRING to user. Without metavar, optparse will print dest value after option you've been added.

Flamen answered 7/10, 2010 at 13:43 Comment(0)
C
0

There's another meaningful use of metavar where one desires to use 'dest' as the argument lookup-tag but mask the help message by metavar. (E.g. sometimes handy when using subparsers). (As indicated in the comment of S.Lott).

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

or equally

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

Help will show the metavar:

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

positional arguments:   
  helpful_message  Specify destination

but dest will store the fancy_tag in Namespace:

./parse.py test 
Namespace(my_fancy_tag='test')
Cellobiose answered 10/7, 2012 at 15:37 Comment(0)
S
0

It's now preferable to use the argparse library instead of optparse.

Reasons why are given here.

Seraglio answered 13/11, 2014 at 9:55 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.