<p><a href="http://docs.python.org/library/functions.html#zip" rel="nofollow">^{<cd1>}</a>就是为了这个!让我们从您的<code>fromfiles2</code>开始:</p>
<pre><code>>>> fromfiles2 = [['Line1','Line2','Line3'],['Line01','Line02','Line03']]
>>> outputlines = zip(*fromfiles2)
>>> for l in outputlines:
... print "\t".join(l)
...
Line1 Line01
Line2 Line02
Line3 Line03
</code></pre>
<p>这就是<code>zip</code>的基本工作原理:</p>
^{pr2}$
<p>当然,这也适用于两个以上的参数:-)。在</p>
<p>当文件很小时,这是一个很好的方法。然后,您可以安全地将它们读入内存,合并内存中的数据,然后将合并的数据写入输出文件。但是,如果您的输入确实很大(GB的数据),那么您应该同时逐行读取输入文件,构建一个输出行,将其写入文件,然后再继续输入文件中的下一行。在</p>
<p>如果您有了<code>zip</code>的概念,那么您可以研究<code>itertools.izip</code>来提高内存效率:</p>
<pre><code>>>> from itertools import izip
>>> for l in izip(*fromfiles2):
... print "\t".join(l)
...
Line1 Line01
Line2 Line02
Line3 Line03
</code></pre>
<p>{a2如果不想查看相同数量的文件},可能还需要查看}</p>
<pre><code>>>> fromfiles3 = [['Line1','Line2','Line3'],['Line01','Line02']]
>>> for l in izip_longest(*fromfiles3, fillvalue="Nothing"):
... print "\t".join(l)
...
Line1 Line01
Line2 Line02
Line3 Nothing
</code></pre>