擅长:python、mysql、java
<p>嗯,为什么不掺一点呢?:-)</p>
<pre><code>from subprocess import Popen, PIPE
cproc = Popen('cat | grep line', stdin=PIPE, stdout=PIPE, stderr=PIPE, shell=True)
out, err = cproc.communicate("this line has the word line in it")
</code></pre>
<p>但要注意:</p>
<ul>
<li><p>这只适用于使用Bourne Shell兼容Shell的系统(与大多数*nix'es一样)</p></li>
<li><p>Usign shell=True并将用户输入放在命令字符串中是一个坏主意,除非首先转义用户输入。阅读子流程文档->;“常用参数”了解详细信息。</p></li>
<li><p>这是丑陋的,不可携带的,非Python等。。。</p></li>
</ul>
<p>编辑:
不过,如果您只想使用<code>grep</code>,则无需使用<code>cat</code>。只需将输入直接提供给grep,或者更好地使用python正则表达式。</p>