擅长:python、mysql、java
<p>下面是一个简单而通用的函数,它接受任何iterable并生成所有序列对(例如,<code>1, 2, 3</code>变成<code>(1, 2), (2, 3)</code>):</p>
<pre><code>def pairwise(iterable):
it = iter(iterable)
a = next(it)
for b in it:
yield a, b
a = b
</code></pre>
<p>这可以用来解决您的特定问题,如下所示:</p>
<pre><code>with open('outputfile', 'w') as out:
for (_, _, a1, a2), (_, _, b1, b2) in pairwise(
[w.strip() for w in l.split(',')] for l in open('test.csv')):
out.write('command %s:%s moretext %s:%s\n' % (a1, a2, b1, b2))
</code></pre>
<p>这样做的一个优点是,在开始输出之前,您不会将整个输入读取到内存中,因此对于流式处理和任意大的文件来说,它会很好地工作。你知道吗</p>