<p>首先,你的csv文件中没有分隔符,我不得不这样重写它们(逗号分隔符):</p>
<p>在填充.csv公司名称:</p>
<pre><code>Number,Name,EmailAddress
1,Jenny,jj@ymail.com
2,Josh,jh@ymail.com
3,Tony,ty@gmail.org
4,Jeff,jf@youtube.cc
</code></pre>
<p>infe2.csv:</p>
^{pr2}$
<p>那么你的代码就没有什么问题了:</p>
<ul>
<li>您缺少空主机行的支票</li>
<li>奇怪的变量end_row正在做一些您不想做的事情,实际上是没有用的,因为您确实想追加<code>master_row[1]</code></li>
<li><code>not found</code>的条件在错误的块中,因此多次追加“NO ENTRY”</li>
<li>存在未使用的变量<code>row</code></li>
<li>(只是增强)当文件的变量超出范围时,python将为您关闭文件,因此您可以删除close()调用</li>
</ul>
<p>在我的修复之后:</p>
<pre><code>import csv
f1 = file('inFile.csv', 'rb')
f2 = file('inFile2.csv', 'rb')
f3 = file('outFile.csv', 'wb')
c1 = csv.reader(f1)
c2 = csv.reader(f2)
c3 = csv.writer(f3)
masterlist = [row for row in c2]
for hosts_row in c1:
found = False
for master_row in masterlist:
results_row = hosts_row
if hosts_row and master_row:
if hosts_row[0] == master_row[0]:
results_row.append(master_row[1])
found = True
break
if not found:
results_row.append('NO ENTRY')
if any(hosts_row):
c3.writerow(results_row)
</code></pre>
<p>输出文件:</p>
<pre><code>Number,Name,EmailAddress,Address
1,Jenny,jj@ymail.com,17 Yerlington Wy
2,Josh,jh@ymail.com,NO ENTRY
3,Tony,ty@gmail.org,NO ENTRY
4,Jeff,jf@youtube.cc,123 Walnut St
</code></pre>
<p>高温</p>