擅长:python、mysql、java
<p>如果每个输入行产生已知数量的输出行,则可以:</p>
<pre><code>import sys
from subprocess import Popen, PIPE
p = Popen([sys.executable, '-u', 'slave.py'], stdin=PIPE, stdout=PIPE)
def send(input):
print >>p.stdin, input
print p.stdout.readline(), # print input
response = p.stdout.readline()
if response:
print response, # or just return it
else: # EOF
p.stdout.close()
send("hello world")
# ...
send("name is")
send("q")
p.stdin.close() # nothing more to send
print 'waiting'
p.wait()
print 'done'
</code></pre>
<p>否则您可能需要<a href="https://stackoverflow.com/a/4896288/4279">threads to read the output asynchronously</a>。在</p>