ich bin neu in Python und möchte 2 CSV Datein vergleichen und in jeweils einer extra Datei die gleichen Datensätze und die unterschiedlichen Datensätze exportieren und speichern
Nur leider speichert der die Listen immer 1:1 (also es wird nichts verglichen) hab schon 2x verschiedene Logis versucht.
Test1.csv =
test;test1;test2;test3;test4
test0;test01
Test2.csv =
test5;test6;test7;test8;test4
test9;test10;test11
Am Ende will ich eine Liste mit Test4 und eine Liste mit den restlichen Test haben
Code: Alles auswählen
import csv
output_path1 = "server_fertig1.csv" #1 Logikversuch
output_path2 = "server_fertig2.csv" #1 Logikversuch
output_path3 = "server_fertig3.csv" #2 Logikversuch
output_path4 = "server_fertig4.csv" #2 Logikversuch
f1 = open("test1.csv") #File Nr1 einlesen
oldFile1 = csv.reader(f1, delimiter=';')
oldList1 = list(oldFile1)
f2 = open("test2.csv") #File Nr2 einlesen
oldFile2 = csv.reader(f2, delimiter=';')
oldList2 = list(oldFile2)
f1.close() #File Nr1 schließen
f2.close() #File Nr2 schließen
#1 Logikversuch
output1 = [row for row in oldList1 if row not in oldList2]
output2 = [row for row in oldList1 if row in oldList2]
#verschiedene Daten
with open(output_path1,'w', newline='') as fout1:
writer = csv.writer(fout1, delimiter=';')
writer.writerows(output1)
#gleiche Daten
with open(output_path2, 'w', newline='') as fout2:
writer = csv.writer(fout2, delimiter=';')
writer.writerows(output2)
#2 Logikversuch
output3 = set([tuple(item) for item in oldList1])
output4 = set([tuple(item) for item in oldList2])
with open(output_path3, 'w', newline='') as fout3:
writer = csv.writer(fout3, delimiter=';')
writer.writerows(output3)
with open(output_path4, 'w', newline='') as fout4:
writer = csv.writer(fout4, delimiter=';')
writer.writerows(output4)
print (output1)
print (output2)
print (output3)
print (output4)
[['test', 'test1', 'test2', 'test3', 'test4'], ['test0', 'test01']]
[]
{('test', 'test1', 'test2', 'test3', 'test4'), ('test0', 'test01')}
{('test9', 'test10', 'test11'), ('test5', 'test6', 'test7', 'test8', 'test4')}
Process finished with exit code 0