CodeGym /Kurse /Python SELF DE /Lesen von Daten aus einer Datei

Lesen von Daten aus einer Datei

Python SELF DE
Level 21 , Lektion 1
Verfügbar

2.1 Lesen der gesamten Datei

In Python gibt es mehrere Möglichkeiten, Textdateien zu lesen. Jede dieser Methoden hat ihre Vorteile und eignet sich für verschiedene Situationen. Die Hauptmethoden zum Lesen von Textdateien sind: Lesen des gesamten Inhalts, zeilenweises Lesen, Lesen mit Angabe der Anzahl der Zeichen und andere.

Die Methode read() liest den gesamten Inhalt der Datei in einen einzigen String.


file = open('example.txt', 'r')
content = file.read()
print(content)
file.close()

Das ist eine sehr einfache Methode, eine Datei zu lesen - ein Methodenaufruf, und der gesamte Inhalt der Datei ist in einem String. Es gibt jedoch auch Nachteile - wenn die Datei zum Beispiel 200 MB Logs enthält, wird das Lesen langsam und der Speicher deiner Anwendung wird schnell verbraucht.

2.2 Lesen aller Zeilen der Datei

Es gibt eine Alternative zur Methode read() - das ist die Methode readlines(). Sie liest auch die gesamte Datei in den Speicher, gibt sie jedoch nicht als einen großen String, sondern als eine Liste von Strings zurück - jede Zeile der Datei wird eine eigene Zeile der Liste.

Die Methode readlines() liest alle Zeilen der Datei und gibt sie als Liste von Strings zurück.


file = open('example.txt', 'r')
lines = file.readlines()
for line in lines:
    print(line.strip())  # strip() entfernt überflüssige Leerzeichen und neue Zeilenzeichen
file.close()

Diese Methode kann praktisch sein, wenn du vorher weißt, dass du den Inhalt der Datei zeilenweise verarbeiten musst. Ein Nachteil ist, dass diese Methode für sehr große Dateien viel Speicher verbrauchen kann, da alle Zeilen in den Speicher geladen werden.

2.3 Iteration über die Zeilen der Datei

Das Objekt file hat einen eingebauten Iterator, daher kannst du seinen Inhalt mit einer for-Schleife durchlaufen. Dies ermöglicht es, die Datei zeilenweise zu lesen, ohne die gesamte Datei in den Speicher zu laden.

Beispiel:


file = open('example.txt', 'r')
for line in file:
    print(line.strip())  
file.close()

Diese Methode ist speichereffizienter für große Dateien, da die Zeilen einzeln gelesen werden. Allerdings kann sie schwieriger zu handhaben sein, wenn du zu einer vorherigen Zeile zurückkehren oder die Lesereihenfolge ändern musst.

Lass uns diesen Ansatz noch einmal mit dem vorherigen vergleichen:

Verwendung des Iterators Verwendung der Funktion readlines()

file = open('example.txt', 'r')

for line in file:
    print(line.strip())  
                            
file.close()
                

file = open('example.txt', 'r')
            
lines = file.readlines()
for line in lines:
    print(line.strip())  
                        
file.close()
                

Diese Methode ist einfacher und schneller. Wenn du jedoch an echten Projekten arbeitest, kann es manchmal schneller sein, alle Daten sofort in den Speicher zu laden und dort damit zu arbeiten.

Die Methoden readline() und readlines() werden verwendet, um Zeilen aus einer Datei zu lesen, funktionieren aber unterschiedlich. readline() liest eine Zeile auf einmal, was es ermöglicht, den Leseprozess zu kontrollieren und die gesamte Datei nicht in den Speicher zu laden. Das ist praktisch, wenn du die Datei zeilenweise verarbeiten musst oder wenn die Datei zu groß ist, um sie vollständig in den Speicher zu laden.

readlines() hingegen liest alle Zeilen der Datei auf einmal und gibt sie als Liste zurück. Diese Methode ist praktisch, wenn du schnell alle Zeilen der Datei für die weitere Verarbeitung erhalten musst. Allerdings verbraucht sie mehr Speicher, insbesondere für große Dateien, da die gesamte Datei in den Speicher geladen wird.

Abhängig von der Aufgabe kann readline() vorzuziehen sein, wenn Speicherersparnis und Kontrolle über den Leseprozess wichtig sind, während readlines() praktisch ist, wenn du sofort alle Zeilen der Datei zur Verarbeitung benötigst.

2.4 Lesen eines Teils der Datei

Wenn eine Datei zu groß ist, kannst du sie stückweise lesen. Der Methode read(n) kann der Parameter n übergeben werden - die Anzahl der Zeichen, die gelesen werden sollen. Wenn die Datei weniger Zeichen als n enthält, liest die Methode read() einfach die Datei bis zum Ende.

Beispiel:


file = open('example.txt', 'r')
content = file.read(10)  # Liest die ersten 10 Zeichen
print(content)
file.close()

Das ist praktisch, um große Dateien stückweise zu lesen oder um feste Datenblöcke zu verarbeiten. Aber dieser Ansatz ignoriert die Aufteilung der Datei in Zeilen - Zeilen können in der Mitte unterbrochen werden.

2.5 Zeilenweises Lesen der Datei

Wenn du aus irgendeinem Grund keinen Iterator verwenden möchtest, kannst du die Datei manuell zeilenweise lesen. Dazu hat das Objekt file die Methode readline(). Nicht zu verwechseln mit readlines().

Die Methode readline() liest eine Zeile aus der Datei auf einmal.

Beispiel:


file = open('example.txt', 'r')
line = file.readline()
while line:
    print(line.strip())
    line = file.readline()
file.close()

In diesem Beispiel lesen wir den Inhalt der Datei zeilenweise, bis die gelesene Zeile leer ist.

2
Aufgabe
Python SELF DE, Level 21, Lektion 1
Gesperrt
Die gesamte Datei lesen
Die gesamte Datei lesen
2
Aufgabe
Python SELF DE, Level 21, Lektion 1
Gesperrt
Iteration über Zeilen einer Datei
Iteration über Zeilen einer Datei
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION