我有 2 个要比较和附加的 .csv 文件。假设第 1 列文件 1 中有数字。我在第 1 列文件 2 中有一组类似的数字——但顺序不同,并非全部都存在。我想搜索文件 1 的第 1 列以查看第 1 列文件 2 中的数字是否匹配。如果匹配,我想通过将列添加到匹配的列来将文件 2 中的信息附加到文件 1数字。我还删除了输入文件中的任何空行。
例如:
File 1
Number Name EmailAddress
1 Jenny jj@ymail.com
2 Josh jh@ymail.com
3 Tony ty@gmail.org
4 Jeff jf@youtube.cc
File2
Number Address
4 123 Walnut St
1 17 Yerlington Wy
7 420 St B
Output File
Number Name EmailAddress Address
4 Jeff jf@youtube.cc 123 Walnut St
1 Jenny jj@ymail.com 17 Yerlington Wy
7 NO ENTRY
这是我到目前为止的代码,它似乎可以做所有事情,但会附加正确的信息。
import csv
f1 = file('inFile.csv', 'rb')
f2 = file('inFile2', '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:
row = 1
found = False
for master_row in masterlist:
results_row = hosts_row
end_row = masterlist
if any(hosts_row):
if hosts_row[0] == master_row[0]:
results_row.append(end_row[row][1])
found = True
break
if not found:
results_row.append('NO ENTRY')
if any(hosts_row):
c3.writerow(results_row)
f1.close()
f2.close()
f3.close()