擅长:python、mysql、java
<p>您的<code>index</code>方法无法工作,因为<code>python --version</code>将其版本输出到STDERR,而不是STDOUT。如果不需要分离这些流,可以将STDERR重定向到STDOUT:</p>
<pre><code>value = %x(python --version 2>&1)
</code></pre>
<p>此调用是同步的,因此在运行脚本(<code>python do_work.py foo bar 2>&1</code>)之后,您应该能够读取它生成的文件。</p>
<p>如果脚本由于某种原因无法创建文件,您现在将在<code>value</code>变量中看到异常,因为错误消息通常发送到STDERR。</p>
<p>如果要将STDERR与STDOUT分开,请使用<a href="http://www.ruby-doc.org/stdlib-1.9.3/libdoc/open3/rdoc/Open3.html">Open3</a>模块。</p>
<p>请注意,脚本需要一些时间才能运行,因此调用可能会重叠。我会在这里排队以防发生这种情况。</p>
<p>别忘了检查用户输入的数据。千万不要直接传给剧本。</p>