我相信这里有两个问题在起作用:
1)您的父脚本调用p.stdout.read()
,它将读取所有数据,直到文件结束。但是,您的子脚本会无限循环运行,因此文件结束永远不会发生。大概你想要p.stdout.readline()
吗?
2)在交互模式下,大多数程序一次只缓冲一行。当从另一个程序运行时,它们缓冲更多。在许多情况下,缓冲可以提高效率,但是当两个程序需要交互通信时会引起问题。
后p.stdin.write('abc\n')
加:
p.stdin.flush()
在您的子流程脚本中,在print x[::-1]
循环内添加以下内容:
sys.stdout.flush()
(和import sys
顶部)