example - Python optparse metavar
optparse python 3 (5)
No estoy seguro de para qué se optparse
el parámetro metavar
. Veo que se usa por todos lados, pero no puedo ver su uso.
¿Alguien puede aclararme? Gracias.
Como dice @Guillaume, se usa para generar ayuda. Si desea tener una opción que tome un argumento, como un nombre de archivo, puede agregar el parámetro metavar
a la llamada add_option
para que su nombre / descriptor de argumento preferido add_option
en el mensaje de ayuda. De la documentación del módulo actual :
usage = "usage: %prog [options] arg1 arg2"
parser = OptionParser(usage=usage)
parser.add_option("-f", "--filename",
metavar="FILE", help="write output to FILE"),
produciría ayuda como esta:
usage: <yourscript> [options] arg1 arg2
options:
-f FILE, --filename=FILE
El "ARCHIVO" después de "-f" y el "nombre de archivo" proviene del metavar.
metavar parece usarse para generar ayuda: http://www.python.org/doc/2.5.2/lib/optparse-generating-help.html
metavar
es una variable utilizada para imprimir en la pantalla después de la opción. Por lo general, se utiliza para la entrada de sugerencia después de la opción FILE
o INT
o STRING
para el usuario. Sin metavar
, optparse
imprimirá valor de optparse
después de la opción que ha sido agregado.
Ahora es preferible usar la biblioteca argparse en lugar de optparse.
Razones por las cuales se dan aquí .
Hay otro uso significativo de metavar en el que se desea usar ''dest'' como la etiqueta de búsqueda de argumento pero enmascarar el mensaje de ayuda por metavar. (Por ejemplo, a veces útil al usar subparsers). (Como se indica en el comentario de S.Lott ).
parser.add_argument(
''my_fancy_tag'',
help=''Specify destination'',
metavar=''helpful_message''
)
o igualmente
parser.add_argument(
dest=''my_fancy_tag'',
help=''Specify destination'',
metavar=''helpful_message''
)
La ayuda mostrará el metavar:
./parse.py -h usage: parser [-h] destination
positional arguments:
helpful_message Specify destination
pero dest guardará el fancy_tag en Namespace:
./parse.py test
Namespace(my_fancy_tag=''test'')