Argparse xor - mutual exlucise - only one - exactly one
examples/argparse/argparse_xor.py
import argparse parser = argparse.ArgumentParser() parser.add_argument('--name') action = parser.add_mutually_exclusive_group(required=True) action.add_argument('--add', action='store_true') action.add_argument('--remove', action='store_true') args = parser.parse_args()
$ python argparse_xor.py usage: argparse_xor.py [-h] [--name NAME] (--add | --remove) argparse_xor.py: error: one of the arguments --add --remove is required $ python argparse_xor.py --add $ python argparse_xor.py --remove $ python argparse_xor.py --add --remove usage: argparse_xor.py [-h] [--name NAME] (--add | --remove) argparse_xor.py: error: argument --remove: not allowed with argument --add $ python argparse_xor.py --help usage: argparse_xor.py [-h] [--name NAME] (--add | --remove) optional arguments: -h, --help show this help message and exit --name NAME --add --remove