¿Cómo usar Argparse para obtener argumentos de línea de comandos en Python?

StackOverflow https://stackoverflow.com/questions/6309552

  •  26-10-2019
  •  | 
  •  

Pregunta

Quiero poder guardar los valores enteros después de que se pase una opción a través de la línea de comando. Idealmente sería:

python thing.py -s 1 -p 0 1 2 3 -r/-w/-c
  • -s - Almacene el siguiente entero

  • -p - Almacene los siguientes enteros

La parte final puede ser solo una de las tres opciones (-r, -Wel, o -C), dependiendo de lo que necesito hacer.

He estado tratando de leer tutoriales, pero todos usan los mismos dos ejemplos que no explican cómo almacenar enteros después de un -option.

¿Fue útil?

Solución

>>> import argparse
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('-s', type=int)
[...]
>>> parser.add_argument('-p', type=int, nargs='*')
[...]
>>> group = parser.add_mutually_exclusive_group(required=True)
>>> group.add_argument('-r', action='store_true')
[...]    
>>> group.add_argument('-w', action='store_true')
[...]    
>>> group.add_argument('-c', action='store_true')
[...]    
>>> parser.parse_args("-s 1 -p 0 1 2 3 -r".split())
Namespace(c=False, p=[0, 1, 2, 3], r=True, s=1, w=False)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top