Nach jedem Speichern zusätzliche Leerzeile in Textdatei
Verfasst: Samstag 4. Dezember 2010, 20:25
Hallo,
In meinem Übungsbuch habe ich eine Übung durchgearbeitet, in der ein Text, aus einer Datei, geöffnet und in einem Textfeld angezeigt wird.
Danach habe ich das ganze nochmal ohne Buch gemacht und mir gedacht, wenn ich schon was öffne, dann möchte ich es auch ändern und speichern können. Mit Hilfe der Python Standard Library habe ich das auch soweit hinbekommen. Bis auf eine kleinigkeit, die ich nicht verstehe:
Jedes mal wenn ich meine Textdatei speicher, wird am Ende eine neue Leerzeile eingefügt und ich weiß weder warum, noch wie ich es verhindern kann.
Ich bin für jede Hilfe dankbar.
Gruß
Nils
In meinem Übungsbuch habe ich eine Übung durchgearbeitet, in der ein Text, aus einer Datei, geöffnet und in einem Textfeld angezeigt wird.
Danach habe ich das ganze nochmal ohne Buch gemacht und mir gedacht, wenn ich schon was öffne, dann möchte ich es auch ändern und speichern können. Mit Hilfe der Python Standard Library habe ich das auch soweit hinbekommen. Bis auf eine kleinigkeit, die ich nicht verstehe:
Jedes mal wenn ich meine Textdatei speicher, wird am Ende eine neue Leerzeile eingefügt und ich weiß weder warum, noch wie ich es verhindern kann.
Code: Alles auswählen
import sys
import tkinter as tk
import tkinter.scrolledtext as tks
# Programm beenden
def ende():
sys.exit(0)
# Datei öffnen
def xopen():
textfeld.delete(1.0, "end")
datei = open("testtext2.txt")
zeile = datei.readline()
while zeile:
textfeld.insert("end", zeile)
zeile = datei.readline()
datei.close()
# Datei speichern
def xsave():
datei = open("testtext2.txt", "w")
text = textfeld.get(1.0, "end")
datei.writelines(text)
datei.close()
main = tk.Tk()
# Textfeld
textfeld = tks.ScrolledText(main, width = 100, height = 30)
textfeld.pack()
# Button öffnen
bopen = tk.Button(main, text = "Öffnen", command = xopen)
bopen.pack()
# Button schliessen
bsave = tk.Button(main, text = "Speichern", command = xsave)
bsave.pack()
# Button Ende
bende = tk.Button(main, text = "Ende", command = ende)
bende.pack()
main.mainloop()
Gruß
Nils