In my python script, I want to be able to use an optional input parameter only when another optional parameter has been specified. Example:
$ python
You can use parse_known_args() to check if --parameter1 was given before adding --parameter2 to the parser.
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--parameter1', dest='p1')
args = parser.parse_known_args()[0]
if args.p1:
parser.add_argument('--parameter2', dest='p2')
args = parser.parse_args()
if args.p1:
print args.p1
if args.p2:
print args.p2
Results:
$ python myScript.py --parameter1 a
a
$ python myScript.py --parameter1 a --parameter2 b
a
b
$ python myScript.py --parameter2 b
usage: myScript.py [-h] [--parameter1 P1]
myScript.py: error: unrecognized arguments: --parameter2 b