Question

I am using python argparse with the following argument definition:

parser.add_argument('path', nargs=1, help='File path to process')

But when I enter my command with a wildcard argument, argparse globs all the file paths and terminates with an error.

How do I get argparse not to glob the files?

Was it helpful?

Solution

How do I get argparse not to glob the files?

You don't.

You get the shell to stop globbing.

However. Let's think for a moment.

You're saying this in your code

parser.add_argument('path', nargs=1, help='File path to process')

But you are actually providing wild-cards when you run it.

One of those two is wrong. Either stop providing wild-cards at run time or fix argparse to allow multiple filenames.

OTHER TIPS

The shell is expanding the wildcard argument before argparse gets a chance to see it. Put quotes around the wildcard argument to prevent the shell from expanding it.

You could later perform the wildcard expansion with glob.glob.

The globbing is done by your shell, not by the argparse module. print sys.argv at the beginning and you will see what argparse gets as input.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top