Umgang mit Dateien in Python

Der Umgang mit Dateien ist ein wichtiger Bestandteil jeder Webanwendung.

Python verfügt über mehrere Funktionen zum Erstellen, Lesen, Aktualisieren und Löschen von Dateien.

Die Schlüsselfunktion für die Arbeit mit Dateien in Python ist die Funktion open().

Die Funktion open() benötigt zwei Parameter: den Dateinamen und den Modus.

Es gibt vier verschiedene Methoden (Modi) zum Öffnen einer Datei:

  • “r” – Lesen – Standardwert. Öffnet eine Datei zum Lesen, Fehler, wenn die Datei nicht existiert
  • “a” – Append – Öffnet eine Datei zum Anhängen, erstellt die Datei, wenn sie nicht vorhanden ist
  • “w” – Write – Öffnet eine Datei zum Schreiben, erstellt die Datei, wenn sie nicht vorhanden ist
  • “x” – Create – Erzeugt die angegebene Datei, gibt einen Fehler zurück, wenn die Datei existiert

Außerdem können Sie angeben, ob die Datei im Binär- oder Textmodus behandelt werden soll:

  • “t” – Text – Standardwert. Text-Modus
  • “b” – Binär – Binärmodus (z. B. Bilder)

Um die Datei zu öffnen, verwenden Sie die eingebaute Funktion open().

Die Funktion open() gibt ein Dateiobjekt zurück, das über eine read()-Methode verfügt, mit der der Inhalt der Datei gelesen werden kann:

f = open("textdatei.txt", "r")
print(f.read())

Standardmäßig gibt die Methode read() den gesamten Text zurück, aber Sie können auch angeben, wie viele Zeichen Sie zurückgeben möchten:

Gibt die ersten 20 Zeichen zurück

Sie können eine Zeile zurückgeben, indem Sie die Methode readline() verwenden:

Indem Sie die Zeilen der Datei in einer Schleife durchlaufen, können Sie die gesamte Datei Zeile für Zeile lesen:

Um in eine bestehende Datei zu schreiben, müssen Sie der Funktion open() einen Parameter hinzufügen:

“a” – Append – wird an das Ende der Datei angehängt

“w” – Write – überschreibt einen vorhandenen Inhalt

Öffnen Sie die Datei “beispiel.txt” und überschreiben Sie den Inhalt:

Um eine neue Datei in Python zu erstellen, verwenden Sie die Methode open() mit einem der folgenden Parameter:

“x” – Create – erstellt eine Datei, gibt einen Fehler zurück, wenn die Datei existiert

“a” – Append – erstellt eine Datei, wenn die angegebene Datei nicht existiert

“w” – Write – erstellt eine Datei, wenn die angegebene Datei nicht existiert

Um eine Datei zu löschen, müssen Sie das OS-Modul importieren und dessen Funktion os.remove() ausführen:

import os
os.remove("textdatei.txt")

Um eine Fehlermeldung zu vermeiden, sollten Sie prüfen, ob die Datei existiert, bevor Sie versuchen, sie zu löschen:

Da wir die Datei vorher gelöscht haben, exisiert sie nicht mehr

Um einen ganzen Ordner zu löschen, verwenden Sie die Methode os.rmdir():

import os
os.rmdir("test")

Das effiziente Einlesen von Dateien in komplette Datenstrukturen ermöglicht eine schnellere und effektivere Datenverarbeitung in Python. Dieser Ansatz ist besonders nützlich, wenn Sie mit umfangreichen Daten arbeiten, die in einer einzigen Operation gelesen und anschließend verarbeitet werden sollen. Hier einige wichtige Punkte dazu:

  1. Gesamte Datei in eine Datenstruktur einlesen: Statt eine Datei Zeile für Zeile zu lesen, kann es effizienter sein, den gesamten Inhalt auf einmal in eine Datenstruktur wie einen String oder eine Liste einzulesen. Dies reduziert die Anzahl der I/O-Operationen und ermöglicht es, die Datei schnell zu schließen und die Verarbeitung mit der geladenen Datenstruktur fortzusetzen​​.
  2. Einsatz von .readlines() und .read() Methoden: Die .readlines() Methode liest den gesamten Inhalt einer Datei und gibt ihn als Liste von Zeilen zurück. Dies ist praktisch, wenn Sie mit dem Inhalt zeilenweise arbeiten möchten. Die .read() Methode liest hingegen den gesamten Dateiinhalt als einen einzigen String, was nützlich ist, wenn Sie die Daten als Ganzes verarbeiten möchten​​.
  3. Beispiel für das Einlesen in eine Liste: Wenn Sie beispielsweise ein Gedicht oder einen anderen Text haben, können Sie die .readlines() Methode verwenden, um jede Zeile des Textes als Element in einer Liste zu speichern. Anschließend können Sie auf einzelne Zeilen zugreifen, indem Sie auf die entsprechenden Indizes der Liste zugreifen​​.
  4. Beispiel für das Einlesen in einen String: Durch die Verwendung der .read() Methode können Sie den gesamten Inhalt einer Datei in einen einzigen String einlesen. Dies ermöglicht es Ihnen, Operationen auf dem gesamten Text durchzuführen, wie z.B. das Suchen nach Mustern oder das Extrahieren von Teilen des Textes basierend auf Indizes​​.

Diese Techniken sind besonders nützlich, wenn Sie mit großen Dateien arbeiten oder eine effiziente Verarbeitung benötigen. Es ist jedoch wichtig, den Speicherverbrauch im Auge zu behalten, da das Einlesen großer Dateien in den Speicher zu hohem Ressourcenverbrauch führen kann.