Die Ausgangsdatei hat das Format
PLZ, Ort;12345;...;...;
PLZ, Ort;3,4,5,6,;...;...;
PLZ, Ort;12345;...;...;
Die Dateien werden jeden Tag neu geschrieben.
In den Dateien befinden sich häufig Daten aus der Vorgängerdatei (heißt: es ändert sich nicht jeder Eintrag)
Meine Aufgabe ist nun, Duplikate innerhalb einer Datei zu finden und auszugeben.
Da ich die Ergebnisse in einer log-Datei ausgeben möchte, öffne ich die Datei nach jeder Schleife, anschließend leere ich
meine Liste "laufende_nummern" und starte wieder von vorn.
Wenn jemand noch eine Idee hat, wie ich die Suche effektiver gestalten kann, gerne...
Im Vergleich zu meinem ersten Versuch hat sich die Laufzeit mit dem u.s. Code aber schon verringert
Code: Alles auswählen
import collections
pfad = "C:\Pfad\"
def checkDuplikat():
laufende_nummern = []
for datei in os.listdir(pfad):
with open (datei) as textfile:
for line in textfile:
laufende_nummern.append(line.split(";")[1])
if [i for i, count in collections.Counter(laufende_nummern).items() if count >1]:
ergebnis = [i for i, count in collections.Counter(laufende_nummern).items() if count >1]
with open("error_log.txt", "a") as errorlog:
error_text = ("{0} Doppelte Nummer: {1}\n").format(datei, ergebnis)
errorlog.write(error_text)
laufende_nummern = []