使用python运行shell命令

时间:2014-07-29 05:29:45

标签: 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

现在这个有效。但是有更有效的方法吗?输出到文件然后再次从文件读取似乎有点低效。我的目标是直接从os命令的输出设置var。例如var = os.system(unix命令)。 (我知道这不起作用)。

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

您可以使用subprocess模块

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