我正在尝试在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命令)。 (我知道这不起作用)。
答案 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)