Kurs
Irgendwann muss jedes Python-Programm irgendwas speichern: Protokolle, Ergebnisse, Benutzereingaben, Konfigurationsdateien oder verarbeitete Daten. Du exportierst vielleicht Analyseergebnisse, zeichnest die Aktionen deines Skripts auf oder behältst den Anwendungsstatus zwischen den Ausführungen bei. Wie auch immer, das Schreiben in Dateien ist eine wichtige Python-Fähigkeit, die du immer wieder brauchen wirst.
In diesem Leitfaden lernst du, wie du mit der Standardbibliothek in Python Dateien schreiben kannst. Wir fangen mit den Grundlagen an und gehen dann zu Dateimodi, Kodierungen, strukturierten Formaten wie JSON und CSV sowie produktionsreifen Mustern über, die deinen Code sicherer und berechenbarer machen. Am Ende wirst du in der Lage sein, Dateien nicht nur in einfachen Beispielen, sondern auch in echten Anwendungen sicher zu schreiben.
Wenn du schon mit den Grundlagen von Python klarkommst, hilft dir dieses Tutorial dabei, den Sprung von Skripten zu professioneller Dateiverwaltung zu schaffen. Wenn du die Grundlagen während des Lernens vertiefen möchtest, passen unsere Kurse „Einführung in Python“ und „Python für Fortgeschrittene“ gut zu dieser Anleitung.
Python von Grund auf lernen
Los geht's: Deine erste Datei in Python schreiben
Der schnellste Weg, um das Schreiben von Dateien in Python zu verstehen, ist, es einfach zu machen. Fangen wir mit dem einfachsten Beispiel an und bauen darauf auf.
Das Grundmuster (Schritt für Schritt)
Im Grunde folgt das Schreiben in eine Datei einem einfachen Muster:
- Öffne eine Datei
- Schreib was dazu
- Die Datei schließen
Python hat die eingebaute Funktion „ open() “, die den ersten Schritt erledigt.
Die Funktion open(), einfach erklärt
Die Funktion „ open() “ verbindet deinen Python-Code mit einer Datei auf der Festplatte. Du sagst ihm zwei Sachen:
- Mit welcher Datei willst du arbeiten?
- Wie du damit arbeiten willst
Beim Schreiben ist die häufigste Schreibweise „ "w" “, was „schreiben“ bedeutet. Wenn die Datei nicht da ist, macht Python sie. Wenn es da ist, überschreibt Python es.
file = open("example.txt", "w")
file.write("Hello, world!")
file.close()
Wenn du dieses Skript ausführst, erstellt Python eine Datei namens „ example.txt “ im selben Verzeichnis wie dein Code.
Also, was ist gerade passiert?
-
open("example.txt", "w")öffnet oder erstellt die Datei -
write()schickt Text in die Datei -
close()spült die Daten und gibt die Datei frei
Das klappt zwar, aber so solltest du Dateien auf Dauer nicht schreiben.
Der richtige Weg in Python: Kontextmanager verwenden
Das manuelle Öffnen und Schließen von Dateien vergisst man leicht und macht dabei schnell Fehler. Deshalb empfiehlt Python die Verwendung von Kontextmanagern.
Hier ist der Grund, warum es besser ist, „ with ” zu verwenden: Mit „ with “ stellst du sicher, dass die Datei immer richtig geschlossen wird, auch wenn beim Schreiben was schiefgeht. Das macht deinen Code sicherer und einfacher zu lesen.
with open("example.txt", "w") as file:
file.write("Hello, world!")
Sobald der Block „ with “ fertig ist, schließt Python die Datei automatisch. Dieses Muster taucht überall in professionellem Python-Code auf und sollte man sich merken. Du wirst das immer wieder in unserem Python-Programmier -Lernpfad und unserem Kurs „Schreiben von sauberem Python-Code ” sehen.
Ein Python-Beispiel zum Schreiben in eine Datei
Lass uns das mal auf was etwas Realistischeres anwenden. Hier schreib ich mal einen Tagebucheintrag.
from datetime import date
today = date.today().isoformat()
with open("journal.txt", "a", encoding="utf-8") as file:
file.write(f"{today}: Practiced writing files in Python.\n")
Das bringt zwei wichtige Ideen mit sich:
-
Anhängen-Modus (
"a") -
Strukturierte, wiederholbare Einträge schreiben
-
Bei jedem Durchlauf wird eine neue Zeile hinzugefügt, ohne die vorherigen Einträge zu löschen.
Dateimodi verstehen: Wann benutzt man w, a, x und r+?
Sobald du weißt, wie man in eine Datei schreibt, ist die wichtigste Entscheidung, wie du sie öffnest. Dateimodi bestimmen, ob Daten überschrieben, beibehalten oder geschützt werden.
Schreibmodus (w): Neuanfang
Der Schreibmodus erstellt eine Datei, wenn sie nicht schon da ist. Wenn ja, wird es auch überschrieben.
with open("report.txt", "w") as file:
file.write("Daily sales report\n")
Benutz das, wenn du einen Neuanfang machen willst. Pass auf, denn dieser Modus löscht vorhandene Daten ohne Rückfrage.
Anhängemodus (a): Hinzufügen ohne Datenverlust
Der Anhängen-Modus fügt Inhalte am Ende einer Datei hinzu.
with open("activity.log", "a") as file:
file.write("User logged in\n")
Das ist super für Protokolle und inkrementelle Datensätze und einer der sichersten Modi für Produktionssysteme.
Exklusivmodus (x): Sichere Dateierstellung
Der exklusive Modus erstellt eine Datei nur, wenn sie noch nicht da ist.
try:
with open("config.txt", "x") as file:
file.write("initialized=true")
except FileExistsError:
print("File already exists.")
Das ist praktisch für Setup-Skripte, bei denen das Überschreiben riskant wäre.
Lese-/Schreibmodus (r+): Bestehende Dateien ändern
In diesem Modus kann man lesen und schreiben, aber die Datei muss schon da sein.
with open("notes.txt", "r+") as file:
content = file.read()
file.write("\nNew note added.")
Das Schreiben passiert an der aktuellen Position des Dateizeigers, deshalb ist es wichtig, die Bewegung des Cursors zu verstehen.
Welchen Modus solltest du also verwenden? Hier ist mein gedanklicher Leitfaden:
-
Bestehende Daten überschreiben →
w -
Daten behalten und mehr hinzufügen →
a -
Überschreiben verhindern →
x -
Die gleiche Datei lesen und aktualisieren →
r+
Um diesen Entscheidungsprozess optisch zu unterstreichen:

Die Wahl des richtigen Dateimodus hängt meistens davon ab, was du machen willst: überschreiben, anhängen, schützen oder ändern.
Verschiedene Arten von Inhalten in Python schreiben
Sobald du dich daran gewöhnt hast, Dateien im richtigen Modus zu öffnen, kommt die nächste Frage: Was schreibst du eigentlich?
In echten Programmen schreibst du nicht immer nur eine einzige Zeichenfolge. Vielleicht speicherst du Listen, exportierst Ergebnisse oder arbeitest mit Nicht-Textdaten wie Bildern oder PDFs. In diesem Abschnitt lernst du, wie du verschiedene Arten von Inhalten sicher und effizient in Dateien schreiben kannst.
Texte und Zeichenfolgen schreiben
Der einfachste Fall ist das Schreiben von reinem Text. Python hat dafür zwei Hauptmethoden: write() und writelines().
write() schreibt genau das, was du übergibst, ohne automatische Zeilenumbrüche.
with open("example.txt", "w") as file:
file.write("First line\n")
file.write("Second line\n")
write() vs. writelines()
Der Hauptunterschied ist einfach: write() schreibt jeweils eine Zeichenfolge, während writelines() eine Folge von Zeichenfolgen so schreibt , wie sie ist. writelines() fügt keine Zeilenumbrüche hinzu, daher muss jedes Element bereits mit \n enden.
In der Praxis finden viele Entwickler immer noch „ write() “ in einer Schleife besser, weil es einfacher zu lesen ist.
lines = ["One\n", "Two\n", "Three\n"]
with open("example.txt", "w") as file:
file.writelines(lines)
Listen effizient schreiben
items = ["apple", "banana", "cherry"]
content = "\n".join(items)
with open("fruits.txt", "w") as file:
file.write(content)
Das Zusammenfügen reduziert wiederholte Schreibvorgänge auf die Festplatte, was bei größeren Datensätzen wichtig ist.
Binärdaten schreiben
Für Nicht-Textdateien brauchst du den Binärmodus ("wb").
binary_data = b"\x89PNG\r\n\x1a\n"
with open("image.bin", "wb") as file:
file.write(binary_data)
Arbeiten mit Kodierungen in Python (Warum dein Text kaputt aussieht)
Codierungsprobleme sind einer der häufigsten – und nervigsten – Fehler bei der Dateiverwaltung.
Immer UTF-8 angeben
Explizite Kodierung verhindert Probleme zwischen verschiedenen Plattformen und fehlerhafte Zeichen, wie du hier sehen kannst:
with open("example.txt", "w", encoding="utf-8") as file:
file.write("Café, résumé, naïve")
Beispiel aus der Praxis: Mehrsprachiger Text
Wenn du hier klar sagst, was du meinst, sparst du dir später stundenlanges Debuggen. Ich meine Folgendes:
customers = ["Ana García", "François Dupont", "Miyuki 山田"]
with open("customers.txt", "w", encoding="utf-8") as file:
for name in customers:
file.write(name + "\n")
Fortgeschrittene Python-Schreibtechniken
Sobald du dich mit dem Schreiben von Dateien in Python auskennst, geht es meistens nicht mehr darum, wie man sie schreibt, sondern wie man es sicher und effizient macht. Große Dateien, unerwartete Abstürze und Leistungsengpässe führen zu Sonderfällen, die wir noch nicht behandelt haben.
Umgang mit großen Dateien mit Chunked Writes
Streaming-Ausgabe hält den Speicherverbrauch niedrig:
def generate_lines():
for i in range(1_000_000):
yield f"Line {i}\n"
with open("large.txt", "w", encoding="utf-8") as file:
for line in generate_lines():
file.write(line)
Atomic schreibt: Korruption verhindern
Die Idee ist, unvollständige Schreibvorgänge zu vermeiden, falls ein Programm während der Aktualisierung abstürzt.
import os, tempfile
def atomic_write(path, content):
with tempfile.NamedTemporaryFile("w", delete=False) as tmp:
tmp.write(content)
os.replace(tmp.name, path)
Mehr als nur Textdateien: JSON und CSV schreiben
Sobald deine Daten strukturiert sind, ist reiner Text nicht mehr die beste Wahl. Mit Python kannst du ganz einfach gängige strukturierte Formate wie JSON und CSV schreiben, sodass du Daten so speichern kannst, dass sie später einfacher geteilt, überprüft und verarbeitet werden können.
JSON schreiben
Wenn du mit Wörterbüchern oder verschachtelten Daten arbeitest, ist JSON meistens das natürlichste Format zum Schreiben. Das in Python integrierte Modul„ json“ übernimmt die Konvertierung für dich, sodass du Strings nicht manuell formatieren musst.
import json
data = {"id": 1, "name": "Jeremiah"}
with open("user.json", "w", encoding="utf-8") as file:
json.dump(data, file, indent=2)
CSV schreiben
Wenn deine Daten tabellarisch sind und wahrscheinlich in Tabellenkalkulationen oder BI-Tools geöffnet werden, ist CSV besser geeignet. Mit dem CSV-Modul kannst du Zeilen sicher schreiben, ohne dir Gedanken über Trennzeichen oder Anführungszeichen machen zu müssen.
import csv
rows = [{"id": 1, "name": "Alice"}, {"id": 2, "name": "Bob"}]
with open("users.csv", "w", newline="", encoding="utf-8") as file:
writer = csv.DictWriter(file, fieldnames=["id", "name"])
writer.writeheader()
writer.writerows(rows)
Häufige Fehler beim Schreiben in Dateien mit Python
Auch wenn das Schreiben von Dateien in Python einfach ist, führen ein paar kleine Fehler oft zu den meisten Problemen in der Praxis. Diese Probleme haben meistens nichts mit der Syntax zu tun, sondern kommen von übersehenen Details wie Ressourcenmanagement, Dateimodi oder Leistungsoptionen.
Beachte bitte die folgenden Punkte.
-
Vergessen, Dateien zu schließen → verwenden
‘with’ -
Daten aus Versehen überschreiben → Modi doppelt checken
-
Kodierung ignorieren → immer UTF-8 angeben
-
Große Dateien ineffizient schreiben → Batch- oder Stream-Ausgabe
Die meisten Fehler hier sind auf kleine Versehen zurückzuführen, nicht auf komplizierte Logik.
Fazit
Das Schreiben in Dateien in Python ist zunächst einfach, aber echte Programme brauchen mehr Sorgfalt. In diesem Leitfaden hast du dich vom ersten Schreiben von Dateien über die Auswahl sicherer Dateimodi, den richtigen Umgang mit Kodierungen und den Export strukturierter Daten bis hin zur Anwendung produktionsreifer Muster bewegt.
Das Wichtigste ist die Absicht: Wähle den richtigen Modus, sei klar bei der Kodierung und schreib vorsichtig, wenn es um Daten geht.
Werde ein Python-Entwickler
Technischer Redakteur, der sich auf KI, ML und Datenwissenschaft spezialisiert hat und komplexe Ideen verständlich und nachvollziehbar macht.
Häufig gestellte Fragen
Kann Python Dateien asynchron schreiben?
Ja, mit Bibliotheken wie aiofiles, obwohl die meisten Skripte das nicht brauchen.
Was ist der sicherste Schreibmodus?
Anhängen ("a") oder exklusiv ("x") je nach Absicht.
Warum ist mein Text kaputt?
Codierungsfehler – immer UTF-8 verwenden.
Wo wird meine Datei gespeichert?
Bezogen auf das Arbeitsverzeichnis des Skripts.
Soll ich pathlib benutzen?
Ja, für eine sauberere, plattformübergreifende Pfadverarbeitung.

