/ / Python argparse dificultades - python-3.x, argumentos de línea de comando

Python argparse dificultades - python-3.x, argumentos de línea de comando

Estoy intentando crear un analizador de argumentos de línea de comandos para mi programa utilizando el módulo Python integrado argparse. Quiero que el usuario pueda ejecutar miprograma normalmente, o para ejecutar una demo. Para ejecutar una demostración se requiere un número de demostración, que sería un argumento de línea de comando. Entonces, básicamente, los argumentos de la línea de comandos pueden estar en uno de estos formatos.

  • python3 blah.py normal
  • python3 blah.py demo <demo#>

¿Cómo le permito al usuario usar cualquiera de las opciones, pero no ambas al mismo tiempo? Además, ¿cómo hago el número de demostración requerido cuando uso la opción de demostración pero no cuando uso la opción normal?

Gracias por adelantado.

Respuestas

1 para la respuesta № 1

puede usar el grupo mutuamente exclusivo (he cambiado los argumentos a número de demo y -normal):

import argparse
parser = argparse.ArgumentParser()
group = parser.add_mutually_exclusive_group()
group.add_argument("-demo", action="store",
dest="demonum",
help="demo execution")
group.add_argument("-normal", action="store_true",
help="normal execution")
parsed = parser.parse_args()
print(parsed.demonum)
print(parsed.normal)