====== Dateibehandlung in Python ======
Dateibehandlung ist ein wichtiger Teil einer Anwendung.
In Python gibt es verschiedene Funktionen für das Erstellen, Lesen, Aktualisieren und Löschen von Dateien.
Die Schlüsselfunktion für das Arbeiten mit Dateien in Python ist die open() - Funktion.
Diese benötigt 2 Parameter, den Dateinamen und den Modus.
Es gibt verschiedene Modi für das Öffnen einer Datei:
* "r" - Read - Standardwert. Öffnet eine Datei zum Lesen. Liefert einen Fehler zurück, falls die Datei nicht existiert.
* "a" - Append - Öffnet eine Datei für das Anhängen von Zeichenketten. Erstellt die Datei, falls diese nicht existiert.
* "w" - Write - Öffnet eine Datei für das Schreiben von Zeichenketten. Erstellt die Datei, falls diese nicht existiert.
* "x" - Create - Erstellt eine Datei. Liefert einen Fehler zurück, falls die Datei nicht existiert.
Zusätzlich kannst du noch spezifizieren, ob du die Datei in Binär- oder Textmodus öffnest.
* "t" - Text - Standardwert. Öffnet die Datei im Textmodus.
* "b" - Binär - Öffnet die Datei im Binärmodus (z.B. Bilder,..)
==== Datei öffnen ====
Um eine Datei für das Lesen zu öffnen, ist also der Name der Datei ausreichend.
f = open("demofile.txt")
Der nachstehende Code ist ident zum Code vorher.
f = open("demofile.txt")
==== Datei lesen ====
Falls die Datei die gelesen werden soll, sich im selben Ordner wie das Python-Programm befindet, kann man diese wie folgt öffnen und lesen:
f = open("demofile.txt", "r")
print(f.read())
#OUTPUT
Das ist ein Demofile!
Die open() - Funktion liefert ein Dateiobjekt zurück, welches eine read() - Methode besitzt um den Inhalt der Datei zu lesen.
Befindet sich die Datei in einem anderen Ordner, so muss man den genauen Pfad mitangeben.
f = open("C:\\myfiles\welcome.txt", "r")
print(f.read())
#OUTPUT
Willkommen in meiner Textdatei
Möchte man nur Teile einer Datei lesen, so kann man spezifizieren wie viele Zeichen man lesen möchte:
f = open("demofile.txt", "r")
print(f.read(5))
#OUTPUT
Das i
Man kann aber auch nur eine Zeile auslesen:
f = open("demofile.txt", "r")
print(f.readline())
Man kann aber auch alle Zeilen auf einmal auslesen:
f = open("demofiles.txt", "r")
#Zeilen mit Zeilenumbruch \n
lines = f.readlines()
for line in lines:
print(line)
Bei dieser Variante hat man dann keinen Zeilenumbruch in den einzelnen Zeilen:
f = open("demofiles.txt", "r")
#Zeilen ohne Zeilenumbruch
lines = f.read().splitlines()
for line in lines:
print(line)
==== Datei schreiben ====
Um eine Datei zu schreiben, muss man den richtigen Parameter ("a" oder "w") in der open() - Funktion mitangeben.
f = open("demofile.txt", "a")
f.write("Jetzt besitzt die Datei mehr Inhalt!")
f.close()
#open and read the file after the appending:
f = open("demofile.txt", "r")
print(f.read())
#OUTPUT
Das ist ein Demofile!Jetzt besitzt die Datei mehr Inhalt!
Öffnet die Datei demofile.txt und fügt die Zeichenkette "Jetzt besitzt die Datei mehr Inhalt!" hinzu.
f = open("demofile.txt", "w")
f.write("Woops! I have deleted the content!")
f.close()
#open and read the file after writing:
f = open("demofile.txt", "r")
print(f.read())
#OUTPUT
Woops! I have deleted the content!
==== Datei löschen ====
Um eine Datei zu löschen, muss man das Betriebssystem-Modul os einbinden und die zugehörige Methode os.remove() aufrufen.
import os
os.remove("demofile.txt")
Um einen Fehler zu vermeiden, sollte man zuerst prüfen, ob die Datei existiert.
import os
if os.path.exists("demofile.txt"):
os.remove("demofile.txt")
else:
print("The file does not exist")
==== Ordner löschen ====
Um einen ganzen Ordner zu löschen, können wir die Methode os.rmdir() verwenden.
import os
os.rmdir("myfolder")