J'ai créé un script en utilisant argparse.
Le script doit prendre un nom de fichier de configuration en option, et l'utilisateur peut spécifier s'il doit poursuivre totalement le script ou seulement le simuler.
Les arguments à passer: ./script -f config_file -sou ./script -f config_file.
C'est ok pour la partie -f config_file, mais elle me demande des arguments pour le -s qui est optionnel et ne doit être suivi d'aucun.
J'ai essayé ceci:
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
Avec les erreurs suivantes:
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'
Et même erreur avec ''au lieu de 0.