GO:是否有某种方式与正在等待stdin输入的子进程(shell脚本/ python脚本)进行通信?Go子进程通信
例如python脚本(子)
import sys
while True:
sys.stdout.write('%s\n'%eval(sys.stdin.readline()))
在走程序,我想创造这个python脚本的子进程,并提供它的标准输入,在有需要时,反复输入,并采取它的输出。在Go程序的标准输出或从文件中读取/写入也是可行的。
这大致是什么,我想,但没有任何反应 -
c := exec.Command("python", "-u add.py")
si,_ := c.StdinPipe()
so,_ := c.StdoutPipe()
c.Start()
si.Write([]byte("2+2\n")
无关:你可以用'输入'取代的eval(sys.stdin.readline())'()'关于Python 2.或者替换'进口整个循环码; shell = code.InteractiveConsole(); shell.interact()'或者直接启动'python -i'进程。 – jfs
这就是为什么你不应该忽略错误,试试'exec.Command(“python”,“-u”,“add.py”)或者'exec.Command(“python”,“-u”,“ -i“)或exec.Command(”python“,”-i“)'(如果它不使输出完全缓冲) – jfs
没有错误。仍然无法正常工作 –