usage parser argumentparser arg_parser add_argument python optparse

parser - ¿Puede optparse de Python mostrar el valor predeterminado de una opción?



python args parser (5)

Agregue argparse.ArgumentDefaultsHelpFormatter a su analizador

import argparse parser = argparse.ArgumentParser( description=''Your application description'', formatter_class=argparse.ArgumentDefaultsHelpFormatter)

de la documentación:

ArgumentDefaultsHelpFormatter agrega automáticamente información sobre los valores predeterminados a cada uno de los mensajes de ayuda de argumentos: Blockquote

¿Hay alguna manera de hacer que la opción de impresión automática de Python sea el valor predeterminado de una opción o marca al mostrar la ayuda con --help?


Los comentarios a su pregunta ya indican que hay otra forma de analizar los argumentos llamados argparse . Se ha introducido en Python 3.2. En realidad, desaprueba optparse pero se usa de manera similar.

argpass viene con diferentes clases de formato y, por ejemplo, argparse.ArgumentDefaultsHelpFormatter también imprimirá los valores predeterminados sin que tenga que manipular la cadena de ayuda manualmente.

Los objetos ArgumentParser permiten personalizar el formato de ayuda al especificar una clase de formato alternativo. Actualmente, hay cuatro clases de este tipo:

clase argparse.RawDescriptionHelpFormatter

clase argparse.RawTextHelpFormatter

clase argparse.ArgumentDefaultsHelpFormatter

clase argparse.MetavarTypeHelpFormatter

Un ejemplo de la documentación de python:

>>> parser = argparse.ArgumentParser( ... prog=''PROG'', ... formatter_class=argparse.ArgumentDefaultsHelpFormatter) >>> parser.add_argument(''--foo'', type=int, default=42, help=''FOO!'') >>> parser.add_argument(''bar'', nargs=''*'', default=[1, 2, 3], help=''BAR!'') >>> parser.print_help() usage: PROG [-h] [--foo FOO] [bar [bar ...]] positional arguments: bar BAR! (default: [1, 2, 3]) optional arguments: -h, --help show this help message and exit --foo FOO FOO! (default: 42)

ver clases de formato argparse


Y si desea agregar valores predeterminados automáticamente a todas las opciones que haya especificado, puede hacer lo siguiente:

for option in parser.option_list: if option.default != ("NO", "DEFAULT"): option.help += (" " if option.help else "") + "[default: %default]"


Y si necesita acceso programático a los valores predeterminados, puede acceder a ellos a través del atributo defaults del analizador (es un dictado)


Intente utilizar el marcador de posición de cadena %default :

# This example taken from http://docs.python.org/library/optparse.html#generating-help parser.add_option("-m", "--mode", default="intermediate", help="interaction mode: novice, intermediate, " "or expert [default: %default]")