擅长:python、mysql、java
<p>可以同时打开多个文件。例如:</p>
<pre><code>files = [gzip.open(f,"rb") for f in fileslist]
processed = [process(f) for f in files]
</code></pre>
<p>(顺便说一句,不要将您的文件列表称为“<code>list</code>”,也不要将文件列表称为“<code>file</code>”,因为它们是语言的保留字,不能描述您的案例中的对象是什么)。你知道吗</p>
<p>现在它将需要大约相同的时间,因为您总是一次处理一个。那么,您想并行化的是对它们的处理吗?然后你想看看<code>threading</code>或<code>multiprocessing</code>。你知道吗</p>
<p>您正在寻找<code>os.path.walk</code>来遍历目录吗?(<a href="https://docs.python.org/2/library/os.path.html" rel="nofollow">https://docs.python.org/2/library/os.path.html</a>)。您还可以执行以下操作:</p>
<pre><code>for folder in folderslist:
fileslist = os.listdir(folder)
for file in fileslist:
....
</code></pre>
<p>您对<code>fileinput</code>迭代来自多个输入流的行感兴趣吗?(<a href="https://docs.python.org/2/library/fileinput.html" rel="nofollow">https://docs.python.org/2/library/fileinput.html</a>,<code>fileinput.hook_compressed</code>似乎处理gzip)。你知道吗</p>