我正在尝试比较两个CSV文件,以检查file1.csv的第一列中的IP地址是否在file2.csv的一行中Python 3.6。如果地址是在文件2,我需要该行复制到一个新的文件,该文件是相同的文件1.两个文件设置的第二列的值如下所示:使用两个CSV文件中的匹配列值创建一个包含组合数据的新文件
文件1:
XX.XXX.XXX.1,Test1
XX.XXX.XXX.2,Test2
XX.XXX.XXX.3,Test3
XX.XXX.XXX.4,Test4
XX.XXX.XXX.5,Test5
XX.XXX.XXX.6,Test6
XX.XXX.XXX.7,Test7
XX.XXX.XXX.8,Test8
and so on
文件2:
XX.XXX.XXX.6, Name6
XX.XXX.XXX.7, Name7
XX.XXX.XXX.8, Name8
我需要的result.csv文件看起来像这样:
XX.XXX.XXX.1,Test1, Not found
XX.XXX.XXX.2,Test2, Not found
XX.XXX.XXX.3,Test3, Not found
XX.XXX.XXX.4,Test4, Not found
XX.XXX.XXX.5,Test5, Not found
XX.XXX.XXX.6,Test6,Name6
XX.XXX.XXX.7,Test7,Name7
XX.XXX.XXX.8,Test8,Name8
我的代码到目前为止如下:
import csv
f1 = open('file1.csv', 'r')
f2 = open('file2.csv', 'r')
f3 = open('results.csv', 'w')
c1 = csv.reader(f1)
c2 = csv.reader(f2)
c3 = csv.writer(f3)
file2 = list(c2)
for file1_row in c1:
row = 1
found = False
for file2_row in file2:
results_row = file1_row
x = file2_row[3]
if file1_row[1] == file2_row[1]:
results_row.append('Found. Name: ' + x)
found = True
break
row += 1
if not found:
results_row.append('Not found in File1')
c3.writerow(results_row)
f1.close()
f2.close()
f3.close()
此时此代码正在检查相同的行而不是值。这意味着它不会匹配任何内容,因为它要求两个文件的IP列和相邻列都相同,此外它还匹配文件的第1行,第2行,第3行等,但我需要它搜索一个文件在另一个中查找匹配,不按索引比较行。
这工作完美。谢谢! –