Wie man bestimmte Zeilen aus einer Datei in Python liest
-
fileobject.readlines()
zum Lesen spezifischer Zeilen für kleine Dateien -
for
-Schleife inDatei-Objekt
, um bestimmte Zeilen in Python zu lesen -
linecache
Modul zum Lesen der spezifischen Zeilen in Python -
enumerate
beim Lesen bestimmter Zeilen aus einer großen Datei in Python
Eine übliche Methode, eine Datei in Python zu lesen, besteht darin, sie vollständig zu lesen und dann die spezifische Zeile zu verarbeiten. Das Lesen einer Datei in Python ist schnell, zum Beispiel dauert das Schreiben einer 100MiB-Datei etwa 0,67 Sekunden. Wenn die Dateigröße jedoch 100 MB überschreitet, würde es zu Speicherproblemen kommen, wenn die Datei in den Speicher gelesen wird.
Python hat 3 eingebaute Methoden, um die spezifischen Zeilen aus einer Datei zu lesen, die in den nächsten Abschnitten vorgestellt werden.
fileobject.readlines()
zum Lesen spezifischer Zeilen für kleine Dateien
fileobject.readlines()
liest den gesamten Dateiinhalt in den Speicher. Es könnte Listen-Slicing verwenden, um die spezifischen Zeilen zu lesen.
Wenn wir nur Zeile 10 lesen müssen,
with open("file.txt") as f:
data = f.readlines()[10]
print(data)
Wenn wir Zeilen von 10 bis 100 lesen müssen,
with open("file.txt") as f:
data = f.readlines()[10:100]
print(data)
for
-Schleife in Datei-Objekt
, um bestimmte Zeilen in Python zu lesen
for line in fileobject
ist auch eine schnelle Lösung für kleine Dateien.
lines = [10, 100]
data = []
i = 0
with open("file.txt", "r+") as f:
for line in f:
if i in lines:
data.append(line.strip)
i = i + 1
print(data)
linecache
Modul zum Lesen der spezifischen Zeilen in Python
Zeilencache
zum Lesen vieler Dateien, auch mehrfach möglich oder zum Extrahieren vieler Zeilen:
import linecache
data = linecache.getline("file.txt", 10).strip()
Die Zeichenketten-Methode strip()
gibt eine Zeichenkette zurück, die an beiden Enden Leerzeichen entfernt.
Das linecache
Modul erlaubt es Ihnen, eine beliebige Zeile aus einer Python-Quelldatei zu erhalten, während Sie den Cache zur internen Optimierung verwenden, was eine gängige Praxis beim Lesen vieler Zeilen aus einer einzigen Datei ist. Das Traceback-Modul verwendet es, um die im formatierten Traceback enthaltenen Quellzeilen abzurufen.
enumerate
beim Lesen bestimmter Zeilen aus einer großen Datei in Python
Beim Lesen von Dateien kann eine große Datei Probleme verursachen, z. B. dass sie nicht in den Speicher passt. In diesem Fall könnten wir enumerate()
verwenden:
with open("file.txt") as f:
for i, line in enumerate(f):
pass # process line i
Beachten Sie, dass für die n
te Zeile i = n-1
.
Die Funktion enumerate()
wird verwendet, um ein durchlaufendes Datenobjekt (wie eine Liste, ein Tupel oder eine Zeichenkette) zu einer Indexsequenz zu kombinieren, die gleichzeitig Daten und Daten-Subskriptionen auflistet, was im allgemeinen in der for
-Schleife verwendet wird.