usage metavar float argumentparser argument arg_parser add_argument python command-line-arguments argparse

metavar - Python argparse banderas de línea de comando sin argumentos



argparse python boolean (3)

¿Cómo agrego un indicador opcional a mis argumentos de la línea de comando?

p.ej. para que pueda escribir

python myprog.py

o

python myprog.py -w

Lo intenté

parser.add_argument(''-w'')

Pero acabo de recibir un mensaje de error diciendo

Usage [-w W] error: argument -w: expected one argument

lo que tomo significa que quiere un valor de argumento para la opción -w. ¿Cuál es la manera de simplemente aceptar una bandera?

Estoy encontrando http://docs.python.org/library/argparse.html bastante opaco en esta pregunta.


Agregando un fragmento rápido para tenerlo listo para ejecutar:

Fuente: myparser.py

import argparse parser = argparse.ArgumentParser(description="Flip a switch by setting a flag") parser.add_argument(''-w'', action=''store_true'') args = parser.parse_args() print args.w

Uso:

python myparser.py -w >> True


Como lo tiene, el argumento w está esperando un valor después de -w en la línea de comandos. Si solo está buscando activar un interruptor configurando una variable True o False , visite http://docs.python.org/dev/library/argparse.html#action (específicamente store_true y store_false)

parser.add_argument(''-w'', action=''store_true'')

Edición: como señala Sven, un valor predeterminado en este caso es superfluo.


Esta es una forma rápida de hacerlo, no requerirá nada más que sys ... aunque la funcionalidad es limitada:

flag = "--flag" in sys.argv[1:]

[1:] es en caso de que si el nombre completo del archivo es --flag