如何在Python代码中调用Shell脚本?

306 投票
14 回答
568388 浏览
提问于 2025-04-16 04:29

如何在Python代码中调用一个shell脚本?

14 个回答

58

如果你想给你的 shell 脚本传递一些参数,可以使用 shlex.split() 这个方法:

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

假设有一个 test.sh 文件在同一个文件夹里:

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

输出结果:

$ python test.py 
param1
param2
138

有几种方法可以使用 os.popen()(这个方法已经不推荐使用了)或者整个 subprocess 模块,但 这种方法

import os
os.system(command)

是最简单的方法之一。

372

subprocess模块可以帮你解决这个问题。

这里有个非常简单的例子:

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

其中,test.sh是一个简单的脚本,而0是这次运行的返回值。

撰写回答