Python - Dateien lesen: Ein Anfänger-Leitfaden

Hallo da, zukünftige Python-Meister! ? Heute werden wir eine spannende Reise in die Welt der Datei-Verarbeitung in Python antreten. Als euer freundlicher Nachbar und Computerlehrer bin ich hier, um euch durch die Einmaleins des Lesens von Dateien zu führen. Keine Sorge, wenn ihr noch nie einen Codezeilen geschrieben habt – wir beginnen von Grund auf und bauen uns nach oben auf. Also, holt euch euer Lieblingsgetränk, macht euch komfortabel und lasst uns einsteigen!

Python - Read Files

Eine Datei zum Lesen öffnen

Bevor wir eine Datei lesen können, müssen wir sie öffnen. Stellt euch vor, als ob ihr an die Tür eines Hauses klopft, bevor ihr hineingehst. In Python verwenden wir die Funktion open(), um dies zu tun. Beginnen wir mit einem einfachen Beispiel:

datei = open("hello.txt", "r")

Hier ist, was passiert:

  • open() ist die Funktion, die wir verwenden, um Dateien zu öffnen
  • "hello.txt" ist der Name der Datei, die wir öffnen möchten
  • "r" bedeutet, dass wir die Datei im Lesemodus öffnen

Denkt daran, die Datei immer zu schließen, wenn ihr fertig seid:

datei.close()

Eine Datei mit dem read()-Methoden lesen

Jetzt, wo wir unsere Datei geöffnet haben, lesen wir ihren Inhalt. Die Methode read() ist wie ein Staubsauger – sie saugt den gesamten Inhalt auf einmal auf. So verwenden wir sie:

datei = open("hello.txt", "r")
inhalt = datei.read()
print(inhalt)
datei.close()

Dieser Code gibt den gesamten Inhalt der Datei aus. Es ist einfach, aber seid vorsichtig mit großen Dateien – sie könnten all eure Computer-Speicher aufbrauchen!

Eine Datei mit der readline()-Methode lesen

Manchmal möchten wir unsere Datei Zeile für Zeile lesen, wie wenn wir jeden Bissen eines köstlichen Essens genießen. Hier kommt readline() zur Hilfe:

datei = open("hello.txt", "r")
zeile = datei.readline()
while zeile:
print(zeile, end='')
zeile = datei.readline()
datei.close()

Dieser Code liest und gibt jede Zeile der Datei aus. Die end='' in der print()-Funktion verhindert das Hinzufügen eines zusätzlichen Zeilenumbruchs, da readline() das Zeilenumbruchzeichen beibehält.

Eine Datei mit der readlines()-Methode lesen

Was, wenn wir alle Zeilen als Liste haben möchten? Hier kommt readlines() ins Spiel:

datei = open("hello.txt", "r")
zeilen = datei.readlines()
for zeile in zeilen:
print(zeile, end='')
datei.close()

Diese Methode gibt eine Liste zurück, bei der jedes Element eine Zeile aus der Datei ist. Es ist wie eine Schachtel Schokolade zu bekommen, bei der jede Schokolade eine Zeile Text ist!

Verwendung des "with"-Statements

Jetzt sprechen wir über einen hübschen Trick, den Python bietet – das with-Statement. Es ist wie ein verantwortungsbewusster Freund, der immer daran denkt, die Tür (Datei) zu schließen, nachdem er gegangen ist:

with open("hello.txt", "r") as datei:
inhalt = datei.read()
print(inhalt)

Das with-Statement schließt die Datei automatisch, wenn wir fertig sind. Kein mehr Vergessen, close() aufzurufen!

Eine Datei im Binärmodus lesen

Manchmal müssen wir Dateien lesen, die nicht nur Text sind, wie Bilder oder Executables. Für diese verwenden wir den Binärmodus:

with open("image.jpg", "rb") as datei:
binary_data = datei.read()
print(len(binary_data), "Bytes gelesen")

Der "rb"-Modus öffnet die Datei im binären Lesemodus. Es ist wie Brillen zu tragen, um die Einsen und Nullen zu sehen!

Ganzzahlige Daten aus einer Datei lesen

Angenommen, wir haben eine Datei mit Zahlen, eine pro Zeile. So lesen wir und verwenden sie als Ganzzahlen:

with open("numbers.txt", "r") as datei:
zahlen = [int(zeile.strip()) for zeile in datei]
print("Summe der Zahlen:", sum(zahlen))

Dieser Code liest jede Zeile, wandelt sie in eine Ganzzahl um und fügt sie einer Liste hinzu. Dann können wir Mathe mit unseren Zahlen machen!

Fließkommazahlen aus einer Datei lesen

Ähnlich wie bei Ganzzahlen können wir Fließkommazahlen lesen:

with open("measurements.txt", "r") as datei:
messungen = [float(zeile.strip()) for zeile in datei]
print("Durchschnittliche Messung:", sum(messungen) / len(messungen))

Dieses Mal verwenden wir float() anstelle von int(), um unsere Zeichenketten in Dezimalzahlen umzuwandeln.

Lesen und Schreiben in eine Datei mit dem "r+"-Modus

Manchmal möchten wir in die gleiche Datei lesen und schreiben. Der "r+"-Modus lässt uns genau das tun:

with open("journal.txt", "r+") as datei:
inhalt = datei.read()
datei.write("\nNeuer Eintrag: Heute habe ich etwas über Datei-Verarbeitung in Python gelernt!")
datei.seek(0)
aktualisierter_inhalt = datei.read()
print(aktualisierter_inhalt)

Dieser Code liest die Datei, fügt eine neue Zeile hinzu, liest dann erneut, um die Änderungen anzuzeigen.

Gleichzeitiges Lesen und Schreiben in eine Datei in Python

Hier ist ein Trick: Wir können zwei Datei-Objekte verwenden, um gleichzeitig zu lesen und zu schreiben:

with open("original.txt", "r") as lese_datei, open("copy.txt", "w") as schreib_datei:
for zeile in lese_datei:
schreib_datei.write(zeile.upper())

Dieser Code liest aus einer Datei und schreibt eine großgeschriebene Version in eine andere Datei. Es ist wie ein Kopierer, der schreit!

Eine Datei von einem bestimmten Offset lesen

Manchmal möchten wir von einem bestimmten Punkt in der Datei lesen zu beginnen. Dies können wir mit der Methode seek() tun:

with open("long_text.txt", "r") as datei:
datei.seek(50)  # Zum 50. Byte bewegen
teil_inhalt = datei.read(100)  # 100 Bytes von diesem Punkt lesen
print(teil_inhalt)

Dies ist wie ein Lesezeichen in einem Buch zu legen und von dort zu beginnen zu lesen.

Nun Zusammenfassen wir alle Methoden, die wir gelernt haben, in einer praktischen Tabelle:

Methode Beschreibung
open() Öffnet eine Datei
read() Liest den gesamten Dateiinhalt
readline() Liest eine einzelne Zeile
readlines() Liest alle Zeilen in eine Liste
with-Statement Schließt die Datei automatisch
"rb"-Modus Öffnet die Datei im binären Lesemodus
int() / float() Wandelt Zeichenkette in Zahl um
"r+"-Modus Öffnet Datei zum Lesen und Schreiben
seek() Bewegt sich zu einer spezifischen Position in der Datei

Und das ist es, Leute! Ihr habt gerade die Grundlagen des Lesens von Dateien in Python gelernt. Denkt daran, Übung macht den Meister, also probiert diese Dinge bei euren eigenen Dateien aus. Wer weiß, vielleicht werdet ihr ja der nächste Python-Datei-Verarbeitungs-Zauberer! Happy coding! ?✨

Credits: Image by storyset