Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich große CSV-Dateien in Python 2.7 effizient lesen?

Wie kann ich große CSV-Dateien in Python 2.7 effizient lesen?

Barbara Streisand
Barbara StreisandOriginal
2024-11-19 16:42:03231Durchsuche

How Can I Efficiently Read Large CSV Files in Python 2.7?

Lesen großer CSV-Dateien mit Python 2.7

Die Bewältigung der Herausforderung des Lesens riesiger CSV-Dateien mit Python 2.7 kann zu Speicherproblemen führen, insbesondere bei Dateien mehr als 300.000 Zeilen. Um diese Hürde zu überwinden, ist es wichtig, das Einlesen der gesamten Datei in den Speicher zu vermeiden.

Speicherverwaltungstechniken

Der Einsatz von Generatoren ermöglicht eine speichereffiziente Verarbeitung. Anstatt alle Zeilen in einer Liste zu akkumulieren, geben Sie jede Zeile einzeln aus. Dieser Ansatz, der durch den Generator der Funktion „getstuff“ veranschaulicht wird, reduziert den Speicherverbrauch erheblich.

Berücksichtigen Sie außerdem Optimierungen wie die Funktionen „dropwhile“ und „takewhile“ aus dem Modul „itertools“. Diese ermöglichen eine effiziente Filterung durch das Überspringen irrelevanter Zeilen und sparen so zusätzlich Speicher.

Leistungsoptimierung

Über die Speicherverwaltung hinaus geht es bei der Leistungssteigerung um die Minimierung unnötiger Vorgänge. Die getdata-Funktion sollte direkt über den getstuff-Generator iterieren und so unnötige Zwischenlisten vermeiden.

Beispielverwendung

Das Überarbeiten des Codes mithilfe von Generatoren führt zu einer viel effizienteren Lösung:

def getstuff(filename, criterion):
    ...  # Same generator code as above

def getdata(filename, criteria):
    ...  # Same generator code as above

# Process rows directly
for row in getdata(somefilename, sequence_of_criteria):
    ...  # Process the current row

Dieser Code verarbeitet effektiv jeweils eine Zeile, wodurch die Speichernutzung erheblich reduziert und die Leistung verbessert wird, selbst bei umfangreichen CSV-Dateien Dateien.

Das obige ist der detaillierte Inhalt vonWie kann ich große CSV-Dateien in Python 2.7 effizient lesen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn