<p>我不知道这管子怎么解释。如果这是一个问题,您可以编程创建一个pipelline。</p>
<p>发件人:
<a href="http://docs.python.org/library/subprocess.html#replacing-shell-pipeline" rel="nofollow noreferrer">http://docs.python.org/library/subprocess.html#replacing-shell-pipeline</a></p>
<pre><code>p1 = Popen(["dmesg"], stdout=PIPE)
p2 = Popen(["grep", "hda"], stdin=p1.stdout, stdout=PIPE)
output = p2.communicate()[0]
</code></pre>
<p><em>编辑</em></p>
<p>至于文件重定向,可以将stdout指向文件。。</p>
<blockquote>
<p>stdin, stdout and stderr specify the
executed programs’ standard input,
standard output and standard error
file handles, respectively. Valid
values are PIPE, an existing file
descriptor (a positive integer), an
existing file object, and None.</p>
</blockquote>
<p>示例:</p>
<pre><code>out_file = open(out_filename, "wb")
gzip_proc = subprocess.Popen("gzip", stdout=out_file)
gzip_proc.communicate()
</code></pre>
<p>或者,如果您采纳Alex的建议并使用Python的标准库<a href="http://docs.python.org/library/gzip.html" rel="nofollow noreferrer">gzip</a>模块,则可以执行以下操作:</p>
<pre><code>import gzip
import subprocess
...
#out_filename = path to gzip file
cmdL1 = ["mysqldump", "--user=" + db_user, "--password=" + db_pass, domaindb]
p1 = subprocess.Popen(cmdL1, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
dump_output = p1.communicate()[0]
f = gzip.open(out_filename, "wb")
f.write(dump_output)
f.close()
</code></pre>