1.1 Datei öffnen
Mit Dateien in Python zu arbeiten macht wirklich Spaß, weil es ziemlich einfach und intuitiv ist. Wir sprechen jetzt nicht vom Erstellen oder Verschieben von Dateien auf der Festplatte, sondern vom Lesen und Schreiben des Dateiinhalts.
Die Arbeit mit dem Inhalt einer Datei läuft normalerweise nach folgendem Schema ab:
Datei öffnen
Mit den Daten der Datei arbeiten
Datei schließen
Beispiel zum Lesen des gesamten Inhalts einer Datei:
file = open('example.txt', 'r')
content = file.read()
print(content)
file.close()
Die Funktion open wird zum Öffnen einer Datei verwendet. Sie nimmt zwei Hauptargumente an: Dateiname und Zugriffsmodus. Die Funktion gibt ein File-Objekt zurück, das dann für Lese- und Schreibvorgänge genutzt werden kann.
Beispiel:
file = open('example.txt', 'r')
Wenn nur der Dateiname angegeben ist, wird die Datei im aktuellen Arbeitsverzeichnis des Programms gesucht. Wenn der vollständige Dateiname angegeben ist, erfolgt der Zugriff über den angegebenen Pfad.
1.2 Zugriffsmodi
Der zweite Parameter in der Funktion open() gibt den Modus an, in dem die Datei geöffnet wird. Zugriffsmodi bestimmen, welche Operationen mit der Datei durchgeführt werden können (Lesen, Schreiben usw.).
Hier sind die Hauptzugriffsmodi:
Read— Lesen.Write— Schreiben.Append— Anfügen.
Es gibt mehrere Variationen dieser Modi:
- 'r': Öffnet die Datei zum Lesen (Standardmodus). Die Datei muss existieren.
- 'w': Öffnet die Datei zum Schreiben. Der Inhalt der Datei wird gelöscht. Falls die Datei nicht existiert, wird sie erstellt.
- 'a': Öffnet die Datei zum Anhängen. Daten werden am Ende der Datei hinzugefügt. Falls die Datei nicht existiert, wird sie erstellt.
- 'r+': Öffnet die Datei zum Lesen und Schreiben. Die Datei muss existieren.
- 'w+': Öffnet die Datei zum Lesen und Schreiben. Der Inhalt der Datei wird gelöscht. Falls die Datei nicht existiert, wird sie erstellt.
- 'a+': Öffnet die Datei zum Lesen und Anhängen. Daten werden am Ende der Datei hinzugefügt. Falls die Datei nicht existiert, wird sie erstellt.
Beispiel zum Schreiben in eine Datei:
Wenn du Daten in eine Datei schreiben möchtest, gib einfach w als Zugriffsmodus beim Öffnen der Datei an. Beachte, dass alle alten Inhalte der Datei gelöscht werden!
file = open('example.txt', 'w')
file.write("Hello, World!")
file.close()
Beispiel zum Anfügen in eine Datei:
Wenn du den Inhalt der Datei nicht löschen, sondern einfach etwas an das Ende anhängen möchtest, musst du a als Zugriffsmodus der Datei angeben.
file = open('example.txt', 'a')
file.write("\nAppended text.")
file.close()
Wichtig! Wenn du in eine Datei schreibst und sie noch nicht existiert, wird sie automatisch erstellt. Aber wenn du versuchst, Daten aus einer nicht existierenden Datei zu lesen, entsteht eine Ausnahme.
1.3 Datei schließen
Jedes Mal, wenn du eine Datei öffnest, überprüft das Betriebssystem deine Zugriffsrechte auf die Datei und markiert sie als von deinem Programm verwendet. Für die Arbeit mit der Datei wird eine spezielle Ressource — ein Handler — bereitgestellt.
Die Anzahl der Handler, die dein Programm erhalten kann, ist begrenzt. Das bedeutet, dass du nur ein paar hundert Dateien gleichzeitig geöffnet halten kannst. Es scheint viel zu sein, aber wenn dein Programm monatelang auf einem Server läuft und täglich Daten liest und schreibt, kann dieses Limit schnell erreicht werden.
Deshalb, nachdem du die Arbeit mit einer Datei beendet hast, musst du sie schließen — den close()-Methode aufrufen. Damit teilst du dem Betriebssystem mit, dass du die Datei nicht mehr benötigst, und sein Handler für dich nicht mehr erforderlich ist.
Datei schließen
Nach Abschluss der Arbeit mit einer Datei muss sie geschlossen werden, um die Systemressourcen freizugeben. Dafür wird die Methode close() verwendet.
file = open('example.txt', 'r')
# Dateivorgänge ausführen
file.close()
Jede Datei, die du zum Lesen oder Schreiben geöffnet hast, sollte geschlossen werden. Vergiss nicht, die close()-Methode aufzurufen.
GO TO FULL VERSION