Wie man bestimmte Zeilen aus einer Datei in Python liest

Heys 30 Januar 2023
  1. fileobject.readlines() zum Lesen spezifischer Zeilen für kleine Dateien
  2. for-Schleife in Datei-Objekt, um bestimmte Zeilen in Python zu lesen
  3. linecache Modul zum Lesen der spezifischen Zeilen in Python
  4. enumerate beim Lesen bestimmter Zeilen aus einer großen Datei in Python
Wie man bestimmte Zeilen aus einer Datei in Python liest

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.

Verwandter Artikel - Python File