Reputation: 96726
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?
Upvotes: 6
Views: 5524
Reputation: 879601
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.
Upvotes: 12
Reputation: 391852
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.
Upvotes: 8
Reputation: 7419
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.
Upvotes: 4