Heim >Backend-Entwicklung >Python-Tutorial >Ein Vergleich von vier verschiedenen Möglichkeiten, Dateien in Python zu lesen
Die Textverarbeitung von Python ist ein häufig auftretendes Problem. Der folgende Artikel stellt Ihnen hauptsächlich den Vergleich verschiedener Methoden von Python vorLesen von Dateien Informationen, detaillierte Beispielcodes Im Artikel finden Sie Informationen, damit jeder sie verstehen und lernen kann. Freunde, die sie benötigen, können einen Blick darauf werfen.
Vorwort
Jeder weiß, dass Python viele Möglichkeiten zum Lesen von Dateien hat, aber wenn Sie eine große Datei lesen müssen, sind unterschiedliche Lesemethoden hilfreich haben unterschiedliche Auswirkungen. Werfen wir einen Blick auf die ausführliche Einführung unten.
Szenario
Zeile für Zeile eine 2,9 G große Datei lesen
CPU i7 6820HQ
RAM 32G
Methode
Teilen Sie den Lesevorgang jeder Zeile einmal aufStringVorgang
Die folgenden Methoden verwenden alle die Methode with...as, um die Datei zu öffnen.
Die with-Anweisung eignet sich für den Zugriff auf Ressourcen, um sicherzustellen, dass unabhängig davon, ob während der Verwendung eine Ausnahme auftritt, die erforderlichen „Reinigungsvorgänge“ durchgeführt werden, um Ressourcen freizugeben, z. B. das automatische Schließen von Dateien nach der Verwendung und die automatische Erfassung von Sperren in Threads und Freigabe usw.
Methode 1 Die gebräuchlichste Art, Dateien zu lesen
with open(file, 'r') as fh: for line in fh.readlines(): line.split("|")
Laufergebnis: Es dauerte 15,4346568584 Sekunden
Der Systemmonitor zeigt, dass der Speicher plötzlich von 4,8 G auf 8,4 G gestiegen ist. fh.readlines() speichert alle in den Speicher eingelesenen Zeilendaten. Diese Methode eignet sich für kleine Dateien.
Methode 2
with open(file, 'r') as fh: line = fh.readline() while line: line.split("|")
Laufergebnis: Es dauerte 22,3531990051 Sekunden
Es gibt fast keine Änderung Da im Speicher nur auf eine Datenzeile zugegriffen wird, ist die Zeit offensichtlich länger als die vorherige, was für die weitere Verarbeitung der Daten nicht effizient ist.
Methode 3
with open(file) as fh: for line in fh: line.split("|")
Laufergebnis: Es dauerte 13,9956979752 Sekunden
Es gibt fast keine Änderung im Speicher. Die Geschwindigkeit ist auch schneller als bei Methode zwei.
for line in fh behandelt die Datei Objekt fh als iterierbar, das automatisch gepufferte E/A- und Speicherverwaltung verwendet, sodass Sie sich keine Gedanken über große Dateien machen müssen. Das ist eine sehr pythonische Methode!
Methode 4 Dateieingabemodul
for line in fileinput.input(file): line.split("|")
Ausführungsergebnisse: Es dauerte 26,1103110313 Sekunden
Speicher um 200 erhöht -300 MB, die langsamste Geschwindigkeit oben.
Zusammenfassung
Die oben genannten Methoden dienen nur als Referenz. Die drei anerkannten Methoden zum Lesen großer Dateien sind immer noch die besten. Die konkrete Situation hängt jedoch immer noch von der Leistung der Maschine und der Komplexität der Datenverarbeitung ab.
[Verwandte Empfehlungen]
1. Codebeispiel für n Zeilen, nachdem Python die Datei gelesen hat
2 Datei Mini-ProgrammDas obige ist der detaillierte Inhalt vonEin Vergleich von vier verschiedenen Möglichkeiten, Dateien in Python zu lesen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!