这是想法。我将有'main'python脚本,它将启动(使用子流程)app1和app2。 'main'脚本会将输入发送到app1并将结果输出到app2,反之亦然(主脚本需要记住发送的内容,因此我无法将管道从app1发送到app2)。Python与其他应用程序使用子进程交谈
这是主要脚本。
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'中读取输出(没有沟通()。当我使用它时,它退出我的应用程序,这是我不想要的东西)?
除了仍然阻止:)) – 2012-08-02 09:17:49
谢谢你的答案先生,但我已经尝试过,我现在也试过,看看它是否工作。不幸的是,它不是。 – Vizualni 2012-08-02 09:22:01
由于你不给我任何信息什么不工作,我不能帮你。 – 2012-08-02 09:29:50