2014-10-23 5 views
1

나는 Go에없는 라이브러리를 사용하는 Python으로 코드를 작성했습니다. Go에서 작성한 웹 서버가 있고 Go 프로그램에서 Python 프로그램을 호출 한 다음 Go 프로그램의 입력으로 Python 프로그램의 출력을 사용할 수 있기를 원합니다. 이 작업을 수행 할 여지가 있습니까?Go에서 파이썬 프로그램 실행

답변

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)) 
} 

파이썬 코드 : 이동 코드에서

import sys 

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

출력 :

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

파이썬/CGO 다리의 몇 가지있다 유 Cython을 부르십시오 (그래서 당신은 매번 통역사를 다시 시작할 필요가 없습니다).하지만 그들은 버려진 것처럼 보입니다. – LinearZoetrope

+0

@Jsor, ya 나는 그 중 일부를보고 있었지만 이런 식으로 코드를 실행하는 것이 더 좋은 생각 같았다. 적어도이 방법은 다른 것과 달리 지원됩니다. – Ben

관련 문제