这就是想法。我将拥有将启动(使用子进程)app1 和 app2 的“主”python 脚本。'main' 脚本会将输入发送到 app1 并将结果输出到 app2,反之亦然(主脚本需要记住发送的内容,因此我无法将管道从 app1 发送到 app2)。
这是主脚本。
import subprocess
import time
def main():
prvi = subprocess.Popen(['python', 'random1.py'], stdin = subprocess.PIPE , stdout = subprocess.PIPE, stderr = subprocess.STDOUT)
while 1:
prvi.stdin.write('131231\n')
time.sleep(1) # maybe it needs to wait
print "procitano", prvi.stdout.read()
if __name__ == '__main__':
main()
这是“random1.py”文件。
import random
def main():
while 1:
inp = raw_input()
print inp, random.random()
if __name__ == '__main__':
main()
首先,我只尝试了一个子进程,看看它是否有效。事实并非如此。它只输出 'procitano' 并在那里等待。如何读取“prvi”的输出(没有通信()。当我使用它时,它会退出我的应用程序,这是我不想要的)?