Pasando múltiples archivos con asterisco al shell de Python en Windows

Estoy realizando los ejercicios de Python de Google y necesito poder hacer esto desde la línea de comandos:

python babynames.py --summaryfile baby*.html 

Donde python es el shell de Python, babynames.py es el progtwig de Python, --summaryfile es un argumento que debe interpretar mi progtwig de babynames , y baby*.html es la lista de archivos que coinciden con esa expresión. Sin embargo, no funciona y no estoy seguro de si el problema es el shell de comandos de Windows o Python. La expresión baby*.html no se está expandiendo a la lista completa de archivos, sino que se pasa estrictamente como una cadena. ¿Se pueden pasar múltiples archivos a un progtwig de Python de esa manera?

El intérprete de comandos de Windows no expande los comodines como lo hacen los shells de UNIX antes de pasarlos al progtwig o script ejecutado.

 python.exe -c "import sys; print sys.argv[1:]" *.txt 

Resultado:

 ['*.txt'] 

Solución: utilizar el módulo glob .

 from glob import glob from sys import argv for filename in glob(argv[1]): print filename 

Multiplataforma:

 import glob if '*' in sys.argv[-1]: sys.argv[-1:] = glob.glob(sys.argv[-1]) continue... 

Utilizando argparse:

 import argparse parser=argparse.ArgumentParser() parser.add_argument(dest='wildcard',nargs='+') print(parser.parse_args().wildcard) 

Puedes hacerlo desde shells similares a UNIX, desde el principio en el que escribiste. En mi caso, Git Bash hizo el trabajo: acepta asteriscos como entrada y los procesa correctamente.