如何在Go上运行python脚本

时间:2020-02-25 12:27:35

标签: python go

我有一个类似

的python脚本(相当复杂,但是我将最简单的内容放在这里)。
from cassandra.cluster import Cluster

cluster = Cluster()

session = cluster.connect('mykeyspace')

ta = session.execute(somecqlstatement)

print("The column names of the table are: ", ta.column_names)

我想在Go上运行它-最好不被读取为文件,而是将其存储为字符串并执行。

我调查了以下来源

  1. Go: Run External Python script
  2. https://forum.golangbridge.org/t/how-to-execute-python-code-without-having-to-write-it-to-a-file/6359/2

似乎什么也没用,因为他们抛出了FATA[0000] exit status 1

1 个答案:

答案 0 :(得分:0)

您可以尝试此操作,然后相应地修改输出。

package main
import (
        "bytes"
        "fmt"
        "log"
        //"os"
        "os/exec"
)

const ShellToUse = "bash"

func Shellout(command string) (error, string, string) {
    var stdout bytes.Buffer
    var stderr bytes.Buffer
    cmd := exec.Command(ShellToUse, "-c", command)
    cmd.Stdout = &stdout
    cmd.Stderr = &stderr
    err := cmd.Run()
    return err, stdout.String(), stderr.String()
}
func main() {
     err, out, errout = Shellout("python3 file.py")    
     if err != nil {
         log.Printf("error: %v\n", err)
     }
     fmt.Println("--- stdout ---")
     fmt.Println(out)
     fmt.Println(errout)
}