["python","argparse"]
argparse module How to add option without any argument?

I have created a script using argparse. The script needs to take a configuration file name as an option, and user can specify whether they need to proceed totally the script or only simulate it. The args to be passed: ./script -f config_file -s or ./script -f config_file. It's ok for the -f config_file part, but It keeps asking me for arguments for the -s which is optionnal and should not be followed by any. I have tried this: 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 With the following errors: 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' And same errror with '' instead of 0.
As @Felix Kling suggested, to create an option that needs no value, use action='store_true', 'store_false' or 'store_const'. See documentation. >>> from argparse import ArgumentParser >>> p = ArgumentParser() >>> _ = p.add_argument('-f', '--foo', action='store_true') >>> args = p.parse_args() >>> args.foo False >>> args = p.parse_args(['-f']) >>> args.foo True