parser argumentparser argument arg_parser add_argument python argparse

python - argumentparser - ¿Controlar el formato de la lista de argumentos de ayuda argparse?



python argparse argumentparser() (2)

No tengo Python 3, pero mirando OptionParser (que es muy similar), me doy cuenta de que puedes cambiar:

parser.formatter.max_help_position = 50

Esto aumentará el espacio reservado para los indicadores de opción (de forma predeterminada, es 24)

import argparse parser = argparse.ArgumentParser(prog=''tool'') args = [(''-u'', ''--upf'', ''ref. upf'', dict(required=''True'')), (''-s'', ''--skew'', ''ref. skew'', {}), (''-m'', ''--model'', ''ref. model'', {})] for args1, args2, desc, options in args: parser.add_argument(args1, args2, help=desc, **options) parser.print_help()

Salida:

usage: capcheck [-h] -u UPF [-s SKEW] [-m MODEL] optional arguments: -h, --help show this help message and exit -u UPF, --upf UPF ref. upf -s SKEW, --skew SKEW ref. skew -m MODEL, --model MODEL ref. model

¿Cómo imprimo ref. ¿Modelo en la misma línea que -m MODEL, --model MODEL lugar de que aparezca en una línea separada cuando ejecuto el script con la opción -h ?


Podrías proporcionar el argumento formatter_class :

parser = argparse.ArgumentParser(prog=''tool'', formatter_class=lambda prog: argparse.HelpFormatter(prog,max_help_position=27)) args = [(''-u'', ''--upf'', ''ref. upf'', dict(required=''True'')), (''-s'', ''--skew'', ''ref. skew'', {}), (''-m'', ''--model'', ''ref. model'', {})] for args1, args2, desc, options in args: parser.add_argument(args1, args2, help=desc, **options) parser.print_help()

Nota: la implementación de argparse.HelpFormatter es privada solo que el nombre es público. Por lo tanto, el código podría dejar de funcionar en futuras versiones de argparse . Presente una solicitud de función para proporcionar una interfaz pública para la personalización de max_help_position en http://bugs.python.org/

Salida

usage: tool [-h] -u UPF [-s SKEW] [-m MODEL] optional arguments: -h, --help show this help message and exit -u UPF, --upf UPF ref. upf -s SKEW, --skew SKEW ref. skew -m MODEL, --model MODEL ref. model