¿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"}
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.