使用python运行shell命令
我正在尝试用python运行一个shell脚本,并将输出保存到一个变量中 这是我的python脚本:使用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 现在这个办法行得通。然而,有没有更有效的方法来做到这一点?输出到一个文件,然后再次从该文件读取,这似乎有点低效。我的目标是
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']传递,类似地,您可以如上所述传递对脚本的调用。您可以阅读有关子流程的内容
您可能想看看这个问题的答案这是另一个问题的答案,因此这篇文章可能会有所帮助。阅读有关本模块的内容,尤其是本课程。