How to call a shell script from python code? How to call a shell script from python code? python python

How to call a shell script from python code?


The subprocess module will help you out.

Blatantly trivial example:

>>> import subprocess>>> subprocess.call(['sh', './test.sh']) # Thanks @Jim Dennis for suggesting the []0 >>> 

Where test.sh is a simple shell script and 0 is its return value for this run.


There are some ways using os.popen() (deprecated) or the whole subprocess module, but this approach

import osos.system(command)

is one of the easiest.


In case you want to pass some parameters to your shell script, you can use the method shlex.split():

import subprocessimport shlexsubprocess.call(shlex.split('./test.sh param1 param2'))

with test.sh in the same folder:

#!/bin/shecho $1echo $2exit 0

Outputs:

$ python test.py param1param2