En Python, entiendo cómo se pueden agregar argumentos int y str a los scripts.
parser=argparse.ArgumentParser(description="""Mydescription""")
parser.add_argument('-l', type=str, default='info', help='String argument')
parser.add_argument('-dt', type=int, default ='', help='int argument')
¿Qué es para los booleanos?
Básicamente, quiero pasar una bandera a mi script que le dirá al script si debe realizar una acción específica o no.

action='store_true'?Respuestas:
Puede usar el
actionconstore_true|store_false, o puede usar un int y dejar que la conversión implícita verifique un valor booleano.Al usar
action, no pasaría un argumento--foo=truey--foo=false, simplemente lo incluiría si se configurara como verdadero.De hecho, creo que lo que quieres es
parser.add_argument('-b', action='store_true', default=False)fuente
default=Falsesea necesario.parser.add_argument('--foo', action='store_true')fuente
import distutils.util ARGP.add_argument('--on', '-o', type=distutils.util.strtobool, default='true')Ejemplo llamándolo:
$ ./myscript # argp.on = 1 $ ./myscript --on=false # argp.on = 0 $ ./myscript --on=False # argp.on = 0 $ ./myscript --on=0 # argp.on = 0 $ ./myscript --on=1 # argp.on = 1 $ ./myscript -o0 # argp.on = 0 $ ./myscript -o false # argp.on == 0Debo mencionar que también puede vincular el argumento a una función contenedora local, para manejar alguna otra coincidencia exacta de cadenas si desea admitir valores como "sí" y "no". también puede intentar interpretar la entrada como yaml, que también puede manejar sí / no. Sin embargo, no he hecho esto en un tiempo, y creo que últimamente he apelado a argumentos mutuamente excluyentes con el mismo
destvalor, uno--no-optionconaction='store_false'y otro--optionconaction='store_true'fuente