使用python运行shell命令

使用python运行shell命令,python,shell,Python,Shell,我正在尝试用python运行一个shell脚本,并将输出保存到一个变量中 这是我的python脚本: import os os.system("sh ./temp.sh > outfile.txt") file = open("outfile.txt", "r") var = file.readLine() #I do more stuff using var 现在这个办法行得通。然而,有没有更有效的方法来做到这一点?输出到一个文件,然后再次从该文件读取,这似乎有点低效。我的目标是

我正在尝试用python运行一个shell脚本,并将输出保存到一个变量中

这是我的python脚本:

import os
os.system("sh ./temp.sh > outfile.txt") 
file = open("outfile.txt", "r") 
var = file.readLine() 
#I do more stuff using var

现在这个办法行得通。然而,有没有更有效的方法来做到这一点?输出到一个文件,然后再次从该文件读取,这似乎有点低效。我的目标是直接从os命令的输出设置var。例如,var=os.system(unix命令)。(我知道这行不通)

您可以使用
子流程
模块

import subprocess
output = subprocess.check_output(//unix command here)

您可以使用
子流程
模块将输出存储在变量中,从而使脚本如下所示:

import subprocess
var = subprocess.check_output(['sh', 'temp.sh']) //

子流程
模块基本上允许您执行作为参数数组传递给它的shell命令,以便执行
ls-l
您需要将其作为['ls','-l']传递,类似地,您可以如上所述传递对脚本的调用。您可以阅读有关
子流程的内容

您可能想看看这个问题的答案这是另一个问题的答案,因此这篇文章可能会有所帮助。阅读有关本模块的内容,尤其是本课程。