擅长:python、mysql、java
<p>像这样的:</p>
<pre><code>def runProcess(exe):
p = subprocess.Popen(exe, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
while(True):
# returns None while subprocess is running
retcode = p.poll()
line = p.stdout.readline()
yield line
if retcode is not None:
break
</code></pre>
<p>注意,我正在将stderr重定向到stdout,这可能不是您想要的,但我也需要错误消息。</p>
<p>此函数在它们出现时逐行生成(通常您必须等待子流程完成才能获得完整的输出)。</p>
<p>对于您的情况,用法是:</p>
<pre><code>for line in runProcess('mysqladmin create test -uroot -pmysqladmin12'.split()):
print line,
</code></pre>