Tipps & Tricks

Dateien in Python schreiben: Ein umfassender Leitfaden für Einsteiger

8 min Lesezeit
Dateien in Python schreiben: Ein umfassender Leitfaden für Einsteiger

Einführung

Das Schreiben von Dateien ist eine grundlegende Fähigkeit in Python. Es ermöglicht Ihnen, Daten dauerhaft zu speichern, anstatt sie zu verlieren, wenn Ihr Programm stoppt. Sie können das Speichern von Dateien nutzen, um Ergebnisse, Protokolle, Berichte, Benutzereingaben, Einstellungen und strukturierte Daten zu speichern.

In diesem Leitfaden lernen Sie, wie Sie Textdateien erstellen, mehrere Zeilen schreiben, Inhalte anhängen, mit Ordnern arbeiten und Daten im CSV- und JSON-Format speichern. Außerdem erfahren Sie, welche Dateimodi es gibt, darunter w, a, x und r, und wann Sie jeden einzelnen verwenden sollten.

Am Ende werden Sie in der Lage sein, Python-Programme zu schreiben, die Ergebnisse, Berichte, Protokolle und strukturierte Daten in Dateien speichern.

Ihre erste Textdatei schreiben

Der einfachste Weg, um in eine Datei zu schreiben, ist die Verwendung der integrierten Funktion open() in Python.

Der Modus w steht für Schreibmodus. Wenn die Datei nicht existiert, erstellt Python sie. Existiert die Datei bereits, ersetzt Python deren Inhalt.

file = open("message.txt", "w")
file.write("Hallo, dies ist meine erste Datei, die mit Python geschrieben wurde.")
file.close()

Nach dem Ausführen dieses Codes erstellt Python eine Datei mit dem Namen message.txt im gleichen Ordner wie Ihr Notizbuch oder Skript.

Sie können die Datei zurücklesen, um zu überprüfen, was gespeichert wurde.

file = open("message.txt", "r")
content = file.read()
file.close()
print(content)

Ausgabe:

Hallo, dies ist meine erste Datei, die mit Python geschrieben wurde.

Verwendung von with open(): Die bessere Methode

Obwohl Sie Dateien manuell öffnen und schließen können, wird empfohlen, with open() zu verwenden.

Dies schließt die Datei automatisch, nachdem der Codeblock abgeschlossen ist. Es ist sauberer, sicherer und wird häufig in echten Python-Projekten verwendet.

with open("message.txt", "w") as file:
 file.write("Diese Datei wurde mit with open() geschrieben.")
with open("message.txt", "r") as file:
 content = file.read()
print(content)

Ausgabe:

Diese Datei wurde mit with open() geschrieben.

Die Verwendung von with open() ist Best Practice, da Sie sich nicht daran erinnern müssen, die Datei manuell zu schließen.

Verstehen der Dateimodi

Beim Öffnen einer Datei gibt der Modus an, was Sie damit tun möchten.

  • w: In eine Datei schreiben. Erstellt eine neue Datei oder überschreibt eine vorhandene Datei.
  • a: An eine Datei anhängen. Fügt Inhalte am Ende hinzu, ohne vorhandene Inhalte zu löschen.
  • x: Eine neue Datei erstellen. Schlägt fehl, wenn die Datei bereits existiert.
  • r: Eine Datei lesen. Schlägt fehl, wenn die Datei nicht existiert.

Für das Schreiben von Dateien sind die häufigsten Modi w und a. Verwenden Sie w, wenn Sie eine neue Datei erstellen oder vorhandene Inhalte ersetzen möchten. Verwenden Sie a, wenn Sie neue Inhalte am Ende einer Datei hinzufügen möchten.

Mehrere Zeilen schreiben

Sie können mehrere Zeilen schreiben, indem Sie das Zeilenumbruchzeichen \n hinzufügen.

with open("notes.txt", "w") as file:
 file.write("Zeile 1: Python lernen\n")
 file.write("Zeile 2: Dateihandhabung üben\n")
 file.write("Zeile 3: Kleine Projekte erstellen\n")

Lesen Sie die Datei:

with open("notes.txt", "r") as file:
 print(file.read())

Ausgabe:

Zeile 1: Python lernen
Zeile 2: Dateihandhabung üben
Zeile 3: Kleine Projekte erstellen

Sie können auch writelines() verwenden, um eine Liste von Zeichenfolgen in eine Datei zu schreiben.

tasks = [
 "Python-Code schreiben\n",
 "Notizbuch ausführen\n",
 "Ausgabedatei überprüfen\n"
]
with open("tasks.txt", "w") as file:
 file.writelines(tasks)

Lesen Sie die Datei:

with open("tasks.txt", "r") as file:
 print(file.read())

Ausgabe:

Python-Code schreiben
Notizbuch ausführen
Ausgabedatei überprüfen

Ein wichtiger Punkt ist, dass writelines() nicht automatisch Zeilenumbrüche hinzufügt. Sie müssen \n selbst einfügen.

An eine Datei anhängen

Manchmal möchten Sie den vorhandenen Inhalt in einer Datei nicht ersetzen. Stattdessen möchten Sie möglicherweise neue Inhalte am Ende hinzufügen.

Dafür verwenden Sie den Anhängemodus: a.

with open("journal.txt", "w") as file:
 file.write("Tag 1: Ich habe mit dem Lernen der Dateihandhabung in Python begonnen.\n")
with open("journal.txt", "a") as file:
 file.write("Tag 2: Ich habe gelernt, wie man Text an eine Datei anhängt.\n")

Lesen Sie die Datei:

with open("journal.txt", "r") as file:
 print(file.read())

Ausgabe:

Tag 1: Ich habe mit dem Lernen der Dateihandhabung in Python begonnen.
Tag 2: Ich habe gelernt, wie man Text an eine Datei anhängt.

Der Anhängemodus ist nützlich, wenn Sie mit Protokollen, Tagebüchern, Berichten oder jeder Datei arbeiten, in der Sie neue Informationen hinzufügen möchten.

Sicheres Erstellen von Dateien

Wenn Sie eine neue Datei erstellen möchten, aber das Überschreiben einer vorhandenen Datei vermeiden möchten, verwenden Sie den Modus x.

Dieser Modus erstellt eine Datei nur, wenn sie noch nicht existiert. Wenn die Datei bereits existiert, löst Python einen FileExistsError aus.

try:
 with open("new_file.txt", "x") as file:
 file.write("Diese Datei wurde mit dem Modus x erstellt.")
 print("Datei erfolgreich erstellt.")
except FileExistsError:
 print("Die Datei existiert bereits, daher hat Python sie nicht überschrieben.")

Wenn die Datei nicht existiert, sehen Sie:

Datei erfolgreich erstellt.

Wenn die Datei bereits existiert, sehen Sie:

Die Datei existiert bereits, daher hat Python sie nicht überschrieben.

Dies ist nützlich, wenn Sie vorhandene Dateien vor versehentlichem Überschreiben schützen möchten.

Arbeiten mit Dateipfaden

Standardmäßig speichert Python Dateien im gleichen Ordner, in dem Ihr Notizbuch oder Skript ausgeführt wird.

Wenn Sie Dateien in einem bestimmten Ordner speichern möchten, können Sie pathlib verwenden.

from pathlib import Path
output_folder = Path("output")
output_folder.mkdir(exist_ok=True)
file_path = output_folder / "summary.txt"
with open(file_path, "w") as file:
 file.write("Diese Datei wurde im Ausgabeverzeichnis gespeichert.")
print(f"Datei gespeichert unter: {file_path}")

Ausgabe:

Datei gespeichert unter: output/summary.txt

Jetzt lesen Sie die Datei:

with open("output/summary.txt", "r") as file:
 print(file.read())

Ausgabe:

Diese Datei wurde im Ausgabeverzeichnis gespeichert.

Der Aufruf mkdir(exist_ok=True) erstellt den Ordner, wenn er noch nicht existiert. Wenn der Ordner bereits existiert, löst Python keinen Fehler aus.

CSV-Dateien schreiben

CSV-Dateien sind nützlich, um tabellarische Daten wie Zeilen und Spalten zu speichern. Sie werden häufig in Tabellenkalkulationsprogrammen wie Excel oder Google Sheets geöffnet.

Um eine CSV-Datei in Python zu schreiben, verwenden Sie das csv-Modul.

import csv
students = [
 ["Name", "Punktzahl"],
 ["Ayesha", 92],
 ["Bilal", 85],
 ["Sara", 88]
]
with open("students.csv", "w", newline="") as file:
 writer = csv.writer(file)
 writer.writerows(students)

Lesen Sie die CSV-Datei:

with open("students.csv", "r") as file:
 print(file.read())

Ausgabe:

Name,Punktzahl
Ayesha,92
Bilal,85
Sara,88

Das Argument newline=““ hilft, zusätzliche Leerzeilen beim Schreiben von CSV-Dateien zu vermeiden, insbesondere unter Windows.

JSON-Dateien schreiben

JSON ist ein weiteres gängiges Format zum Speichern strukturierter Daten. Es wird häufig für Wörterbücher, API-Antworten, Konfigurationsdateien und verschachtelte Daten verwendet.

Um JSON-Dateien in Python zu schreiben, verwenden Sie das json-Modul.

import json
profile = {
 "name": "Ayesha",
 "role": "Datenanalystin",
 "skills": ["Python", "SQL", "Excel"],
 "active": True
}
with open("profile.json", "w") as file:
 json.dump(profile, file, indent=4)

Lesen Sie die JSON-Datei:

with open("profile.json", "r") as file:
 print(file.read())

Ausgabe:

{
„name“: „Ayesha“,
„role“: „Datenanalystin“,
„skills“: [
„Python“,
„SQL“,
„Excel“
],
„active“: true
}

Das Argument indent=4 macht die JSON-Datei leichter lesbar.

Häufige Fehler von Anfängern

Hier sind einige häufige Fehler, die Anfänger beim Schreiben von Dateien in Python machen.

  • Vergessen, die Datei zu schließen: Änderungen werden möglicherweise nicht richtig gespeichert. Wie man es behebt: Verwenden Sie with open().
  • w anstelle von a verwenden: Vorhandene Inhalte werden gelöscht. Wie man es behebt: Verwenden Sie a, wenn Sie anhängen.
  • Vergessen von \n: Text erscheint in einer Zeile. Wie man es behebt: Fügen Sie Zeilenumbrüche hinzu.
  • In einen fehlenden Ordner schreiben: Python löst einen Fehler aus. Wie man es behebt: Erstellen Sie zuerst den Ordner.
  • Nicht-String-Daten direkt schreiben: Python kann einen TypeError auslösen. Wie man es behebt: Konvertieren Sie Werte in Strings oder verwenden Sie CSV/JSON.

Zusammenfassung

Das Schreiben von Dateien ist eine der nützlichsten Fähigkeiten für Anfänger in Python. Ich erinnere mich noch daran, dass ich an einem Programmierwettbewerb in meinem zweiten Semester der Ingenieurwissenschaften teilgenommen habe und fast eine Stunde damit verbracht habe, herauszufinden, wie man eine Datei speichert. Hätte ich gewusst, dass es so einfach ist, hätte ich vielleicht gewonnen.

Das Speichern von Dateien hilft Ihnen, Protokolle zu speichern, Programmausgaben zu sichern, Berichte zu erstellen, Benutzerdaten zu speichern und sogar einfache Datenbanken mit Formaten wie JSON zu lesen und zu schreiben. Das Beste daran ist, dass die Dateihandhabung in Python nativ, schnell und sofort einsatzbereit ist.

Für die meisten Aufgaben verwenden Sie with open(), da es die Datei automatisch für Sie schließt. Verwenden Sie w, um eine Datei zu schreiben oder zu überschreiben, a, um neue Inhalte anzuhängen, und x, um eine neue Datei sicher zu erstellen, ohne eine vorhandene zu ersetzen.


Quellen: kdnuggets

Bildquelle: KI generiert

KI Snack