Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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.

like image 374
Gerald Senarclens de Grancy Avatar asked Feb 16 '11 10:02

Gerald Senarclens de Grancy


2 Answers

bash has loops:

for f in *.py; do python "$f"; done
like image 118
Cat Plus Plus Avatar answered Oct 16 '22 06:10

Cat Plus Plus


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.

like image 25
Erik Forsberg Avatar answered Oct 16 '22 06:10

Erik Forsberg