Skip to content
Advertisement

Python argparse – Detect if list argument is passed without anything afterwards

Let’s say the user types:

./args.py --create --mem 5

and my parser looks like this:

parser.add_argument('--create', nargs='*', default=None)

Normally --create takes a list with nargs='*', however in this case the user passed nothing.

What I would like to happen is that --create is set to the default value when invoked, instead I get []

Question: Is there anyway to detect if --create shows up in the command line arguments without anything after it?

Advertisement

Answer

Here is a simple code snippet:

JavaScript

Here are a few interactions:

JavaScript

As you can see, if the user does not add the --create flag, it is None. If the user use --create flag with nothing, you get an empty list.

User contributions licensed under: CC BY-SA
3 People found this is helpful
Advertisement