Python-Datei-I/O: Dateien sicher lesen und schreiben

Erfahren Sie, wie Sie Dateien in Python lesen und schreiben. Beherrschen Sie open(), read(), write() und Kontextmanager, um Dateivorgänge sicher und ohne Ressourcenverluste abzuwickeln.

Versuchen Sie es im Editor

Übersicht

Dateieingabe/-ausgabe (E/A) ist eine grundlegende Funktion, die es Python-Programmen ermöglicht, mit dem persistenten Speicher eines Computers zu interagieren. Unabhängig davon, ob Sie einen einfachen Logger erstellen, Konfigurationsdateien lesen oder riesige Datenmengen verarbeiten, benötigt Ihr Programm eine zuverlässige Möglichkeit, Dateien auf der Festplatte zu öffnen, zu lesen, zu schreiben und zu schließen. Python bietet saubere, integrierte Funktionen, um die Interaktion mit dem Dateisystem unkompliziert und plattformübergreifend zu gestalten.

Das wichtigste Werkzeug für den Dateizugriff in Python ist die integrierte Funktion „open()“. Diese Funktion akzeptiert einen Dateipfad und eine Moduszeichenfolge. Der Modus bestimmt, wie auf die Datei zugegriffen wird: „r“ zum Lesen, „w“ zum Schreiben (wodurch die Datei überschrieben wird), „a“ zum Anhängen von Inhalten am Ende und „b“ für den Binärmodus (nützlich für Bilder oder serialisierte Daten). Entscheidend ist, dass jedes Mal, wenn Sie eine Datei öffnen, ein Betriebssystem-Handle verbraucht wird. Wenn Sie die Datei nicht schließen, kann es zu Speicherverlusten oder Problemen mit der Dateisperre kommen.

Um sicherzustellen, dass Dateien immer ordnungsgemäß geschlossen werden, verwenden Python-Entwickler die „with“-Anweisung, die einen Kontextmanager implementiert. Bei Verwendung von „with open(...) as file:“ schließt Python automatisch das Dateihandle, sobald der Codeblock beendet wird, auch wenn darin eine unerwartete Ausnahme auftritt. Das Lesen von Daten kann Zeile für Zeile mit „for line in file:“ oder alle auf einmal über „.read()“, „.readline()“ oder „.readlines()“ erfolgen. Das Schreiben von Text erfolgt über „.write()“ oder „.writelines()“, was reibungslose, sichere und effiziente Dateivorgänge ermöglicht.

Code- und Ausführungsausgabe

Schreiben Sie eine Begrüßung in eine temporäre Textdatei und lesen Sie sie Zeile für Zeile mithilfe sicherer Kontextmanager zurück.

file_operations.py
Versuchen Sie es im Editor
filename = "sample.txt"

# Writing to a file
with open(filename, "w") as file:
    file.write("Hello, Python coder!\n")
    file.write("This is a line in a file.\n")
    file.write("File I/O is simple.\n")

print("File written successfully.\n--- Reading File ---")

# Reading from a file line by line
with open(filename, "r") as file:
    for index, line in enumerate(file, 1):
        print(f"Line {index}: {line.strip()}")
Terminal-Ausgabe
File written successfully.
--- Reading File ---
Line 1: Hello, Python coder!
Line 2: This is a line in a file.
Line 3: File I/O is simple.

Schrittweise Umsetzung

  • Protokollierung von Fehlern und Programmausgaben
  • Konfigurationsdateien lesen (z. B. .env oder config.txt)
  • Speichern von Benutzerberichten oder exportierten analytischen Zusammenfassungen

Häufig gestellte Fragen

Was ist der Unterschied zwischen Schreib- und Anhängemodus?

Im Schreibmodus ('w') wird die Datei auf die Länge Null gekürzt und alle vorhandenen Inhalte vor dem Schreiben gelöscht. Der Anhängemodus ('a') platziert den Cursor am Ende und fügt neuen Text hinzu, ohne vorhandene Inhalte zu löschen.

Warum sollte ich die with-Anweisung verwenden?

Die with-Anweisung fungiert als Kontextmanager und stellt sicher, dass Dateien automatisch geschlossen werden, wodurch Speicherlecks und Sperrdateifehler verhindert werden.

Verwandte Themen

Empfohlene Python-Ressourcen

Erweitern Sie Ihr Wissen mit zugehörigen interaktiven Tutorials, Spickzetteln und Codevergleichen.