<p>第一个方法肯定会失败:您不想添加新行,而是要添加新列。所以回到第二种方法:</p>
<p>您可以插入标题,但随后将循环遍历每行的结果,而您需要对它们进行迭代。在</p>
<p>为此,我从<code>final_results</code>列表(使用<code>__iter__()</code>)创建一个迭代器,然后调用<code>it.next</code>并追加到每一行(不需要在末尾插入,只需追加)</p>
<p>我删除了<code>all</code>大列表,因为1)你可以一次写一行,节省内存,2)<code>all</code>是一个预定义的函数。避免将其用作变量。在</p>
<pre><code>final_results = ['0.1065599566767107', '0.0038113334533441123', '20.061623176440904']
# Method2
with open("test.csv", 'rb') as input, open('temp.csv', 'wb') as output:
reader = csv.reader(input, delimiter = ',')
writer = csv.writer(output, delimiter = ',')
row = next(reader) # read title line
row.append("Results")
writer.writerow(row) # write enhanced title line
it = final_results.__iter__() # create an iterator on the result
for row in reader:
if row: # avoid empty lines that usually lurk undetected at the end of the files
try:
row.append(next(it)) # add a result to current row
except StopIteration:
row.append("N/A") # not enough results: pad with N/A
writer.writerow(row)
</code></pre>
<p>结果:</p>
^{pr2}$
<p>注意:如果我们在<code>final_results</code>变量中包含<code>"Results"</code>,我们甚至不需要以不同的方式处理第一行。在</p>
<p>注2:值似乎错误:<code>final_results</code>的顺序与预期输出的顺序不同。并且<code>Result</code>列已经变成了<code>ID</code>,但这很容易纠正。在</p>