Kiv Kiv - 7 months ago 18
Python Question

Passing arguments with DOS wildcards to a Python script

I want to do something like this:

c:\data\> python myscript.py *.csv


and pass all of the .csv files in the directory to my python script (such that
sys.argv
contains
["file1.csv", "file2.csv"]
, etc.)

But
sys.argv
just receives
["*.csv"]
indicating that the wildcard was not expanded, so this doesn't work.

I feel like there is a simple way to do this, but can't find it on Google. Any ideas?

Answer

You can use the glob module, that way you won't depend on the behavior of a particular shell (well, you still depend on the shell not expanding the arguments, but at least you can get this to happen in Unix by escaping the wildcards :-) ).

from glob import glob
filelist = glob('*.csv') #You can pass the sys.argv argument