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:

Zusätzlich kannst du noch spezifizieren, ob du die Datei in Binär- oder Textmodus öffnest.

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")