擅长:python、mysql、java
<p>有两个问题:</p>
<ol>
<li>您应该使用有效的<code>.fileno()</code>方法而不是文件名来传递内容</li>
<li>shell展开<code>*</code>,但子进程不会调用shell,除非您提出请求。您可以使用<code>glob.glob()</code>手动展开文件模式。在</li>
</ol>
<p>示例:</p>
<pre><code>#!/usr/bin/env python
import os
from glob import glob
from subprocess import check_call
search_command = ['zgrep', '-Pi', '"name": "bob"']
out_path = os.path.join(out_file_path, file_name)
with open(out_path, 'wb', 0) as out_file:
check_call(search_command + glob('../../LM/DATA/file_*.gz'),
stdout=out_file)
</code></pre>