Seite 1 von 1

Abschließendes "\n" in einer Datei abschneiden

Verfasst: Donnerstag 4. August 2005, 17:28
von brasil66
Hallo!

Wie löse ich es denn am geschicktesten wenn ich nur ein abschließendes "\n" aus einer vorhandenen Datei abschneiden will, so daß die Datei danach mit dem letzten Zeichen aufhört ohne einen Zeilenumbruch?

Muß ich da mit seek,truncate und Konsorten arbeiten oder geht´s auch einfacher?

Gruß Aus Braunschweig

Verfasst: Donnerstag 4. August 2005, 19:57
von henning
Wenn die Datei nur Text enthält und nicht allzu groß ist,
einfach in nen String lesen und letztes Zeichen abschneiden.
Etwa so (ungetestet):

Code: Alles auswählen

f = open("datei.txt", "r")
text = f.read()
f.close()

if text.endswith("\n"):
  text = text[:-1]
Wenn das Resultat wieder in eine Datei soll:

Code: Alles auswählen

f = open("ausgabe.txt", "w")
f.write(text)
f.close()
Diese Methode ist aber natürlich weitaus weniger performant, weil die gesamte Datei in den RAM geladen wird, also bei größeren Dateien wie gesagt, würde ich auf jeden Fall truncate & co. benutzen!

Verfasst: Donnerstag 4. August 2005, 20:11
von brasil66
yep, so ähnlich aber irgendwie umständlicher hatte ich mir auch gedacht .... getestet und für funktionierend befunden! DANKE!

----------

ist auf jeden fall die einfachste lösung, wenn auch nicht elegant. und da die in frage kommenden dateien ram-technisch locker zu bewältigen sind, ist die performance auch kein problem.