Ich habe ein Skript mit erstellt argparse.
Das Skript muss optional einen Konfigurationsdateinamen verwenden, und der Benutzer kann angeben, ob das Skript vollständig ausgeführt oder nur simuliert werden soll.
Die zu übergebenden Argumente: ./script -f config_file -soder ./script -f config_file.
Es ist in Ordnung für den Teil -f config_file, aber es fragt mich immer wieder nach Argumenten für das -s, was optional ist und von keinem gefolgt werden sollte.
Ich habe das versucht:
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
Mit folgenden Fehlern:
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'
Und der gleiche Fehler mit ''statt 0.