使用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 = os.system(Unix命令)。(我知道这样写不行)。
2 个回答
0
你可以使用 subprocess
模块
import subprocess
output = subprocess.check_output(//unix command here)
2
你可以使用 subprocess
模块来把输出结果存储到一个变量里,这样你的脚本就可以像下面这样:
import subprocess
var = subprocess.check_output(['sh', 'temp.sh']) //
subprocess
模块的主要功能是让你可以执行一些命令行指令。你需要把这些指令作为一个数组传给它,比如说要执行 ls -l
,你就需要传入 ['ls', '-l'] 这样的格式。同样的,你也可以用这种方式来调用你的脚本。想了解更多关于 subprocess
的内容,可以点击 这里。