Abschließendes "\n" in einer Datei abschneiden

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
brasil66
User
Beiträge: 27
Registriert: Mittwoch 20. Juli 2005, 19:01
Wohnort: Braunschweig

Donnerstag 4. August 2005, 17:28

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
henning
User
Beiträge: 274
Registriert: Dienstag 26. Juli 2005, 18:37

Donnerstag 4. August 2005, 19:57

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!
Zuletzt geändert von henning am Donnerstag 4. August 2005, 20:17, insgesamt 1-mal geändert.
brasil66
User
Beiträge: 27
Registriert: Mittwoch 20. Juli 2005, 19:01
Wohnort: Braunschweig

Donnerstag 4. August 2005, 20:11

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.
Antworten