使用Python运行shell命令

0 投票
2 回答
1331 浏览
提问于 2025-04-18 15:08

我想在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 的内容,可以点击 这里

撰写回答