¿Cómo imprimir el uso y la ayuda de todos los objetos argparser?
Tengo múltiples ArgumentParser()
en mi script de Python. Sin embargo, cuando lo ejecuto con -h
, la ayuda solo se imprime para el primer argparser cuyos argumentos fueron analizados.
Código:
%%writefile ./test_argparse.py
import argparse
ap1 = argparse.ArgumentParser()
ap1.add_argument("-a", "--abcd", help="ayuda a")
var1 = ap1.parse_known_args()
ap2 = argparse.ArgumentParser()
ap2.add_argument("-e", "--efgh", help="ayuda e")
var2 = ap2.parse_known_args()
En la terminal ejecutar:
python test_argparse.py --help
Resultado:
uso: test_argparse.py [-h] [-a ABCD]
argumentos opcionales:
-h, --help muestra este mensaje de ayuda y sale
-a ABCD, --abcd ABCD ayuda a
Como puedes ver, tanto el uso como la ayuda se muestran solo para `ap1`
Quiero poder mostrar el uso y la ayuda tanto para ap1
como para ap2
. ¿Cómo puedo lograr eso?
davy.ai
En este código, creamos un parser padre utilizando la función
argparse.ArgumentParser()
y le damos una descripción. Luego, agregamos sub-parsers al parser padre utilizando el métodoadd_argument_group()
, y agregamos argumentos a los sub-parsers utilizando el métodoadd_argument()
.Finalmente, analizamos los argumentos de la línea de comandos utilizando el método
parse_args()
. Ahora, si ejecutamos este script con la opción-h
, veremos los mensajes de ayuda para ambos sub-parsers: