Ich halte es nicht für nötig, das Lesen und Schreiben von Textdateien gesondert als Hilfsfunktionen zu extrahieren, denn die Logik ist so einfach, dass es einfach genug ist, das in jeder Anwendung selbst zu machen. Zudem gilt es häufig besondere Bedürfnisse eines Programms zu beachten und auch das Verhalten, wenn die Datei existiert oder nicht, kann jedes Mal anders sein.
Dass das `return 'Fehler'` keine gute Idee ist, haben schon andere geschrieben. Wenn man's unbedingt in Funktionen gießen will, würde ich folgendes vorschlagen:
Code: Alles auswählen
def file_read(n):
with open(n, "r") as f: return f.read()
def file_write(n, d):
with open(n, "w") as f: f.write(d)
Meist ist es aber besser, Textdateien nicht komplett zu lesen, sondern sie zeilenweise zu verarbeiten.
Will man sie nur mal kurz in einem "Wegwerfprogramm" verarbeiten, finde ich es auch akzeptabel, die Ressourcen nicht korrekt zu schließen (passiert bei `with` implizit), sondern sich darauf zu verlassen, dass der CPython-Interpreter das dank Referenz-Zählung selbstständig macht und würde einfach dies benutzen:
Dazu sollte man aber die erste korrekte Version verstanden haben.
Stefan