I currently have a script, which uses file globbing via the sys.argv
variable like this:
if len(sys.argv) > 1:
for filename in sys.argv[1:]:
This works great for processing a bunch of files; however, I would like to use this with the argparse
module as well. So, I would like my program to be able to handle something like the following:
foo@bar:~$ myScript.py --filter=xyz *.avi
Has anyone tried to do this, or have some pointers on how to proceed?
Alternatively you may use both in the following way:
However this will work only for standalone parameters, otherwise the argument values would be treated as file arguments (unless you'll not separate them with space or you'll improve the code further more).
If I got you correctly, your question is about passing a list of files together with a few flag or optional parameters to the command. If I got you right, then you just must leverage the argument settings in argparse:
File p.py
The commented line above inform the parser to expect an undefined number >= 0 (
nargs ='*'
) of positional arguments.Running the script from the command line gives these outputs:
Observe how the files will be in a list regardless of them being several or just one.
HTH!