Search code examples
pythonargparse

How do I constrain my python script to only accepting one argument? (argparse)


I would like a script that has (for example) three arguments:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--a",help="Argument a")
parser.add_argument("--b",help="Argument b")
parser.add_argument("--c",help="Argument c")
args= parser.parse_args()

But make it so that it is only possible to specify only either 'a','b', or 'c' at any give time e.g. you can specify 'a' but not 'b' or 'c' Is this possible and how would I achieve it?


Solution

  • argparse lets you specify this by using the add_mutually_exclusive_group() method.

    import argparse
    parser = argparse.ArgumentParser()
    g = parser.add_mutually_exclusive_group()
    g.add_argument("--a",help="Argument a")
    g.add_argument("--b",help="Argument b")
    g.add_argument("--c",help="Argument c")
    args= parser.parse_args()