Ich versuche derzeit, zwei CSV-Dateien zu vergleichen, um zu prüfen, ob IP-Adressen in der ersten Spalte von file1.csv in file2.csv in einer Zeile sind Python 3.6. Wenn die Adresse in file2 ist, muss ich die zweite Spalte Wert dieser Zeile in eine neue Datei kopiert, die identisch ist 1. Die beiden Datei-Setups wie folgt aussehen Datei:Verwenden von übereinstimmenden Spaltenwerten in zwei CSV-Dateien zum Erstellen einer neuen Datei mit kombinierten Daten
Datei 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
Datei 2:
XX.XXX.XXX.6, Name6
XX.XXX.XXX.7, Name7
XX.XXX.XXX.8, Name8
ich brauche die Result.csv Datei wie folgt aussehen:
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
Der Code ich habe so weit ist wie folgt:
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()
Derzeit prüft dieser Code auf identische Zeilen nicht Werte. Das bedeutet, dass nichts passt, da sowohl die IP-Spalte als auch die angrenzende Spalte in beiden Dateien gleich sein müssen. Darüber hinaus stimmt es mit den Zeilen 1, 2, 3 und so weiter überein, aber ich brauche es, um eins zu durchsuchen um die Übereinstimmungen in der anderen zu finden, nicht Zeilen nach Index vergleichen.
Das hat perfekt funktioniert. Vielen Dank! –