Saya telah membuat skrip menggunakan argparse.
Skrip perlu mengambil nama file konfigurasi sebagai opsi, dan pengguna dapat menentukan apakah mereka harus melanjutkan sepenuhnya skrip atau hanya mensimulasikannya.
Args yang harus dilewati: ./script -f config_file -satau ./script -f config_file.
Tidak apa-apa untuk bagian -f config_file, tetapi ia terus meminta saya untuk argumen -s yang merupakan opsional dan tidak boleh diikuti oleh apa pun.
Saya sudah mencoba ini:
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
Dengan kesalahan berikut:
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'
Dan kesalahan yang sama dengan ''bukannya 0.