這是想法。我將有'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