es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Existe una manera de controlar los espacios en blanco del texto de ayuda en Python argparse?

¿Existe alguna forma de controlar el espacio en blanco del texto de ayuda que argparse imprime en la consola?

El texto de ayuda de ejemplo en https://docs.python.org/3/howto/argparse.html es corto, y no pude encontrar ninguna descripción de cómo manejar el formato para cadenas largas.

Lo único que se me ocurrió fue “\n“, pero según mi intento, parece que se elimina por completo.

#!/usr/bin/python3

import argparse
import json

def parseArgs():
    """
    Para aprender argparse.
    """
    parser = argparse.ArgumentParser()
    parser.add_argument('--json-args', required=False, nargs='?',
                        default='{}',
                        help="""JSON-encapsulated key/value optargs\n
                        e.g. {"foo": "bar"}
                        """
                        )
    a, _ = parser.parse_known_args()
    j = json.loads(a.json_args)
    r = {}
    r['secret'] = 'opensesame'

    for k, v in j.items():
        r[k.lower()] = v

    return r

def main():
    args = parseArgs()
    print(json.dumps(args))

if __name__ == '__main__':
    try:
        main()
    except Exception as e:
        print(e)
        sys.exit(1)
$ python3 ./a.py --help
usage: a.py [-h] [--json-args [JSON_ARGS]]

optional arguments:
  -h, --help            show this help message and exit
  --json-args [JSON_ARGS]
                        JSON-encapsulated key/value optargs e.g. {"foo":
                        "bar"}
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Basándose en la documentación y el ejemplo proporcionado, no parece haber una forma integrada de controlar el espacio en blanco del texto de ayuda que argparse imprime en stdout. Sin embargo, es posible modificar el formato del texto de ayuda mediante la subclasificación de la clase argparse.HelpFormatter e implementando un diseño personalizado para la salida. Esto puede permitirle controlar el espaciado y diseño del texto de ayuda a su gusto.

Comments are closed.