Go:如何执行Python脚本

2024-07-11 10:21:07 浏览数 (1)

exec包

在 Go 语言中调用 Python 脚本可以使用 os/exec 包中的函数。先用 exec.Command 函数来创建一个 *exec.Cmd 结构体,然后调用这个结构体的 Run 方法来执行 Python 脚本。

具体实例

代码语言:javascript复制
import (
	"bytes"
	"io"
	"io/ioutil"
	"os"
	"os/exec"
)

func ExecShellReturn(s string) (string, error) {
	//函数返回一个*Cmd,用于使用给出的参数执行name指定的程序
	cmd := exec.Command("/bin/bash", "-c", s)
	//读取io.Writer类型的cmd.Stdout,再通过bytes.Buffer(缓冲byte类型的缓冲器)
	//将byte类型转化为string类型(out.String():这是bytes类型提供的接口)
	var out bytes.Buffer
	cmd.Stdout = &out
	//Run执行c包含的命令,并阻塞直到完成。  这里stdout被取出,
	//cmd.Wait()无法正确获取stdin,stdout,stderr,则阻塞在那了
	err := cmd.Run()
	return out.String(), err
}

如何调用

代码语言:javascript复制
shell = "python3 canary.py"

	log.Info("执行的shell语句: ", shell)
	result, _ := utils.ExecShellReturn(shell)

0 人点赞