Heim > Artikel > Backend-Entwicklung > Wie kann man große CSV-Dateien in Python effektiv lesen und verarbeiten?
Große CSV-Dateien effektiv lesen
Das Lesen und Verarbeiten großer CSV-Dateien in Python kann aufgrund von Speicherbeschränkungen eine Herausforderung sein. Dieses Problem wird noch deutlicher, wenn Dateien Millionen von Zeilen und Hunderten von Spalten enthalten.
Speicherprobleme und Optimierung
Ihr aktueller Code versucht, Daten aus dem zu lesen und zu speichern CSV-Datei in eine Liste. Dieser Ansatz ist jedoch bei großen Dateien ineffizient, da der gesamte Datensatz in den Speicher geladen wird.
Um dieses Speicherproblem zu beheben, verarbeiten Sie die Daten, während Sie sie lesen. Verwenden Sie eine Generatorfunktion, die jeweils eine Zeile liefert, wie unten gezeigt:
import csv def getstuff(filename, criterion): with open(filename, "rb") as csvfile: datareader = csv.reader(csvfile) yield next(datareader) # yield the header row count = 0 for row in datareader: if row[3] == criterion: yield row count += 1 elif count: # stop when exceeding the adjacent rows of criteria return
Dieser aktualisierte Code liefert Zeilen für Zeile, die dem angegebenen Kriterium entsprechen. Dadurch entfällt die Notwendigkeit, den gesamten Datensatz im Speicher zu behalten.
Leistungsverbesserungen
Über die Speicheroptimierung hinaus gibt es zusätzliche Techniken zur Leistungsverbesserung:
Durch die Anwendung dieser Strategien können Sie erhebliche Fortschritte erzielen Verbessern Sie die Effizienz Ihres Python-Codes für die Verarbeitung großer CSV-Dateien.
Das obige ist der detaillierte Inhalt vonWie kann man große CSV-Dateien in Python effektiv lesen und verarbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!