No estoy seguro de qué optparse
se usa el parámetro metavar
para. Veo que se usa por todos lados, pero no puedo ver su uso.Python optparse metavar
¿Alguien me puede aclarar? Gracias.
No estoy seguro de qué optparse
se usa el parámetro metavar
para. Veo que se usa por todos lados, pero no puedo ver su uso.Python optparse metavar
¿Alguien me puede aclarar? Gracias.
Como dice @Guillaume, se utiliza para la generación de 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 aparezca en el mensaje de ayuda. De 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"),
produciría ayuda de esta manera:
usage: <yourscript> [options] arg1 arg2
options:
-f FILE, --filename=FILE
el "archivo" después de la "f" y el "--filename" proviene de la metavar.
metavar parece ser utilizado para la generación de 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 sugerencia de entrada después de la opción son FILE
o INT
o STRING
para el usuario. Sin metavar
, optparse
imprimirá el valor dest
después de la opción que ha sido agregado.
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'
)
Ayuda mostrará el metavar:
./parse.py -h usage: parser [-h] destination
positional arguments:
helpful_message Specify destination
pero dest almacenará el fancy_tag en Espacio de nombres:
./parse.py test
Namespace(my_fancy_tag='test')
metavar = "helpfulname" personaliza el mensaje de ayuda con un nombre útil; diferente del dest = "nombre". El dest = "nombre" podría no ser útil para los usuarios. –