I\'m going through Google\'s Python exercises and I need to be able to do this from the command line:
python babynames.py --summaryfile baby*.html
Using argparse:
import argparse
parser=argparse.ArgumentParser()
parser.add_argument(dest='wildcard',nargs='+')
print(parser.parse_args().wildcard)
Cross-platform:
import glob
if '*' in sys.argv[-1]:
sys.argv[-1:] = glob.glob(sys.argv[-1])
continue...
Windows' command interpreter does not expand wildcards as UNIX shells do before passing them to the executed program or script.
python.exe -c "import sys; print sys.argv[1:]" *.txt
Result:
['*.txt']
Solution: Use the glob
module.
from glob import glob
from sys import argv
for filename in glob(argv[1]):
print filename
You can do it from UNIX-like shells, right in the from you wrote. In my case, Git Bash did the job - it accepts asterisks as input and process them correctly.