import csv
impFileName = []
impFileName.append("file_1.csv")
impFileName.append("file_2.csv")
expFileName = "MasterFile.csv"
l = []
overWrite = False
comma = ","
for f in range(len(impFileName)):
with open(impFileName[f], "r") as impFile:
table = csv.reader(impFile, delimiter = comma)
for row in table:
data_1 = row[0]
data_2 = row[1]
data_3 = row[2]
data_4 = row[3]
data_5 = row[4]
data_6 = row[5]
dic = {"one":data_1, "two":data_2, "three":data_3, "four":data_4, "five":data_5, "six":data_6}
for i in range(len(l)):
if l[i]["one"] == data_1:
print("Data, where one = " + data_1 + " has been updated using the data from " + impFileName[f])
l[i] = dic
overWrite = True
break
if overWrite == False:
l.append(dic)
else:
overWrite = False
print(impFileName[f] + " has been added to the list 'l'")
with open(expFileName, "a") as expFile:
print("Master file now being created...")
for i in range(len(l)):
expFile.write(l[i]["one"] + comma + l[i]["two"] + comma + l[i]["three"] + comma + l[i]["four"] + comma + l[i]["five"] + comma + l[i]["six"] + "\r\n")
print("Process Complete")
Dieses Programm benötigt 2 (oder mehr) .csv-Dateien und vergleicht die uniqueID (data_1) jeder Zeile mit allen anderen. Wenn sie übereinstimmen, nimmt sie an, dass die aktuelle Zeile eine aktualisierte Version ist, die sie überschreibt. Wenn es keine Übereinstimmung gibt, dann ist es ein neuer Eintrag." r n" wird am Ende der csv-Datei ignoriert
Ich speichere die Daten jeder Zeile in einem Wörterbuch, das dann in der Liste "l" gespeichert wird.
Sobald alle Dateien verarbeitet wurden, gebe ich die Liste "l" an die "MasterFile.csv" im angegebenen Format aus.
--- DAS PROBLEM ---
Die letzte Zeile von "File_1.csv" und die erste Zeile von "File_2.csv" enden in derselben Zeile in der Ausgabedatei. Ich möchte, dass es auf einer neuen Linie weitergeht.
--Visual
...
data_1,data_2,data_3,data_4,data_5,data_6
data_1,data_2,data_3,data_4,data_5,data_6DATA_1,DATA_2,DATA_3,DATA_4,DATA_5,DATA_6
DATA_1,DATA_2,DATA_3,DATA_4,DATA_5,DATA_6
...
HINWEIS: Es gibt keine Kopfzeilen in einem der CSV-Dateien.
Ich habe auch versucht, diese nur mit \ n "am Ende der" expFile.write "- Das gleiche Ergebnis
Die letzte Zeile der ersten Datei hat keinen Zeilenumbruch, was nicht ungewöhnlich ist. Sie müssen einen manuell einfügen –
Sicher werde ich sie in der "expFile.Write" Zeile in der Nähe der unteren einfügen - am Ende der 'schreiben' füge ich "\ r \ n" ("\ r" Wagenrücklauf, "\ n "Zeilenvorschub)? – marmitegeek