擅长:python、mysql、java
<p>你可以这样做:</p>
<pre><code>vasp = subprocess.Popen('vasp', stdout=subprocess.PIPE)
subprocess.check_call(('tee', 'tee_output'), stdin=vasp.stdout)
</code></pre>
<p>这通常比使用<code>shell=True</code>更安全,尤其是当您不能信任输入时。在</p>
<p>注意,<code>check_call</code>将检查<code>tee</code>的返回码,而不是{<cd4>},以确定它是否应该引发一个<code>CalledProcessError</code>。(<code>shell=True</code>方法将执行相同的操作,因为这与shell管道的行为相匹配。)如果需要,可以通过调用<code>vasp.poll()</code>自己检查<code>vasp</code>的返回代码。(另一种方法不允许您这样做。)</p>