连接Golang管道和Python 2.7

连接Golang管道和Python 2.7,python,go,Python,Go,我有以下任务:需要用Python连接Go管道。我了解如何在Go下运行pythonic流程: var compiler string = "python" var path string = "...here script path" pyExec := exec.Command(compiler, path) pyExecIn, _ := pyExec.StdinPipe() pyExecOut, _ := pyExec.StdoutPipe() pyExec.Start() // acitio

我有以下任务:需要用Python连接Go管道。我了解如何在Go下运行pythonic流程:

var compiler string = "python"
var path string = "...here script path"
pyExec := exec.Command(compiler, path)
pyExecIn, _ := pyExec.StdinPipe()
pyExecOut, _ := pyExec.StdoutPipe()
pyExec.Start()
// acitions
pyExec.Wait()
我可以在stdin中写入数据,但只有在终止脚本后才能读取数据。 为了在进程内获取数据,我决定使用管道,但我只能将消息写入Python脚本。尝试从python读取数据时,进程被阻止。请回答我,这是执行方面的问题,还是Goland管道和pythonic管道不兼容?存在另一种方式连接两个进程(套接字等除外)

去:

Python:

r, w = os.pipe()
r = os.fdopen(r, 'r')
raw_responce = r.read(1024)
# actions
w = os.fdopen(w, 'w')
w.write(data)

谢谢

我认为您根本不想使用管道,因为您可以直接访问Go中的标准io。正如您所看到的,您所指的是一个
os.pipe()
。。。与Bash中的
|
类似,它由两个命令组成,将第一个命令的输出作为输入发送到第二个命令。但要在Go中实现同样的功能,您只需阅读标准输出,然后调用下一个命令,其中包含
io.Reader
,不涉及管道。嗨,Evan,谢谢。但它不仅仅是简单调用Pythic脚本,而且他立即终止了这个客户端部分,将来的客户端部分将在C或C++中编码。脚本中的所有操作都在无限循环中完成(服务器端)。所以我需要在运行过程中进行沟通。或者我不理解你的做法?
r, w = os.pipe()
r = os.fdopen(r, 'r')
raw_responce = r.read(1024)
# actions
w = os.fdopen(w, 'w')
w.write(data)