从Go运行Python程序

时间:2014-10-23 04:10:46

标签: python go cross-platform

我在Python中编写了一些代码,它使用了一些不在Go中的库。我有一个我用Go编写的Web服务器,我希望能够从我的Go程序中调用Python程序,然后在我的Go程序中使用Python程序的输出作为输入。反正有吗?

1 个答案:

答案 0 :(得分:2)

实际上相对容易。您需要做的就是使用os/exec库。以下是一个例子。

转码:

package main

import (
   "fmt"
   "os/exec"
)

func main() {
    cmd := exec.Command("python",  "python.py", "foo", "bar")
    fmt.Println(cmd.Args)
    out, err := cmd.CombinedOutput()
    if err != nil { fmt.Println(err); }
    fmt.Println(string(out))
}

Python代码:

import sys

for i in range(len(sys.argv)):
   print str(i) + ": " + sys.argv[i]

来自Go Code的输出:

[python python.py foo bar]
0: python.py
1: foo
2: bar