Run all Python files in a directory


What is the best way to run all Python files in a directory?

python *.py

only executes one file. Writing one line per file in a shell script (or make file) seems cumbersome. I need this b/c I have a series of small matplotlib scripts each creating a png file and want to create all of the images at once.

PS: I'm using the bash shell.

2/16/2011 4:31:20 PM

Accepted Answer

bash has loops:

for f in *.py; do python "$f"; done
2/16/2011 10:38:19 AM

An alternative is to use xargs. That allows you to parallelise execution, which is useful on today's multi-core processors.

ls *.py|xargs -n 1 -P 3 python

The -n 1 makes xargs give each process only one of the arguments, while the -P 3 will make xargs run up to three processes in parallel.

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow