我正在编写一个go程序,该程序通过stdin将数据发送到另一个程序,并通过stdout读取响应.
下面是一个充当某种" echo 服务器"的脚本:
import sys
if __name__=='__main__':
for line in sys.stdin:
print("Hello", line.strip())
当我试图在围棋中与这个程序交流时,它挂在buf.ReadLine()
上.以下是我的GO代码:
package main
import (
"bufio"
"log"
"os/exec"
)
func main() {
cmd := exec.Command("python3", "app.py")
stdout, _ := cmd.StdoutPipe()
stdin, _ := cmd.StdinPipe()
cmd.Start()
stdin.Write([]byte("Bob\n"))
buf := bufio.NewReader(stdout)
buf.ReadLine()
log.Println(buf)
}
Write()
函数不返回错误.然而,当我try 到ReadLine()
时,程序挂起了.我做错了什么?