<\/script>')

Argparse argument named "print"

I want to add an argument named 'print' to my argument parser

arg_parser.add_argument('--print', action='store_true', help="print stuff")
args = arg_parser.parse_args(sys.argv[1:])
if args.print:
    print "stuff"

Productivity:

if args.print:
            ^
SyntaxError: invalid syntax
+4
source share
1 answer

You can use reserved keywords togetattr() access attributes :

if getattr(args, 'print'):

However, you will make it much simpler by simply avoiding that name as your destination; use print_possibly (via destargument ):

arg_parser.add_argument('--print', dest='print_', action='store_true', help="print stuff")
# ...
if args.print_:

or, a more common synonym, for example verbose:

arg_parser.add_argument('--print', dest='verbose', action='store_true', help="print stuff")
# ...
if args.verbose:

Quick demo:

>>> import argparse
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--print', dest='print_', action='store_true', help="print stuff")
_StoreTrueAction(option_strings=['--print'], dest='print_', nargs=0, const=True, default=False, type=None, choices=None, help='print stuff', metavar=None)
>>> args = parser.parse_args(['--print'])
>>> args.print_
True
+10
source

All Articles