我正在嘗試比較兩個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行等,但我需要它搜索一個文件在另一箇中查找匹配,不按索引比較行。
這工作完美。謝謝! –