He creado una secuencia de comandos usando argparse
.argparse module ¿Cómo agregar la opción sin ningún argumento?
La secuencia de comandos debe tomar un nombre de archivo de configuración como una opción, y el usuario puede especificar si es necesario proceder por completo la secuencia de comandos o solo simularla.
Los argumentos que se aprobarán: ./script -f config_file -s
o ./script -f config_file
.
Está bien para la parte de archivo de configuración -f, pero me sigue pidiendo argumentos para el -s que es opcional y no debe ser seguido por ninguno.
He intentado esto:
parser = argparse.ArgumentParser()
parser.add_argument('-f', '--file')
#parser.add_argument('-s', '--simulate', nargs = '0')
args = parser.parse_args()
if args.file:
config_file = args.file
if args.set_in_prod:
simulate = True
else:
pass
Con los siguientes errores:
File "/usr/local/lib/python2.6/dist-packages/argparse.py", line 2169, in _get_nargs_pattern
nargs_pattern = '(-*%s-*)' % '-*'.join('A' * nargs)
TypeError: can't multiply sequence by non-int of type 'str'
Y mismo errror con ''
en lugar de 0
.
Muchas gracias Felix Kling – philippe