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