Seite 1 von 1
In Tkinter eine Txt-Datei von Pickle anzeigen
Verfasst: Sonntag 11. Dezember 2016, 15:42
von Fl4mer
Hey Leute.
Ich habe ein kleines Problem. Ich bin gerade dabei ein Telefonbuch zu schreiben mit GUI (tkinter). Bis jetzt kann ich mehrere Bücher anlegen, und Kontakte erstellen. Um Kontakte zu erstellen benutzte ich Pickle(weil ich die Bücher als .txt Format speichere). Nun wollte ich ein neues GUI Fenster programmieren.
In diesem Fenster soll nun die mit Pickle codierte Text Datei angezeigt werden, natürlich ohne die Hyroglaphen, die in Pickle entstehen. Aber ich weiß leider nicht wie ich dies in die Tat umsetze. Könnte mir hier vielleicht jemand helfen ?
Re: In Tkinter eine Txt-Datei von Pickle anzeigen
Verfasst: Sonntag 11. Dezember 2016, 17:27
von Sirius3
@Fl4mer: Pickle ist keine Text-Datei und auch kein Format, das für längerfristige Speicherung geeignet ist. Eine Datenbank (SQLite ist auch Dateibasiert) ist eigentlich die typische Speicherform für ein Telefonbuch. Aber auch eine csv-Datei wäre möglich, um näher an Deiner Idee von einer Text-Datei zu bleiben. Wenn Du die Daten speichern kannst, müßtest Du sie auch laden können. Daher verstehe ich Deine Frage nach den Hieroglyphen nicht ganz.
Re: In Tkinter eine Txt-Datei von Pickle anzeigen
Verfasst: Sonntag 11. Dezember 2016, 17:55
von Fl4mer
Also ich kann meine Daten die ich in der txt. datei speicher auch abfragen. Sie werden mir dann auch auf der Konsole (Shell) angezeigt. Ich möchte jetzt aber, die Textdatei im Gui von Tkinter angezeigt bekommen, weiß aber nicht wie ich dies mache.
Re: In Tkinter eine Txt-Datei von Pickle anzeigen
Verfasst: Sonntag 11. Dezember 2016, 18:11
von Sirius3
@Fl4mer: ohne zu wissen, was Du konkret machst, kann man Dir auch nicht helfen.
Re: In Tkinter eine Txt-Datei von Pickle anzeigen
Verfasst: Sonntag 11. Dezember 2016, 18:16
von Fl4mer
Ich lege ein Telefonbuch mit GUI an. Nun habe ich einen Menü Punkt mit dem man Kontakte erstellen kann. Diese Kontakte werden mithile des imports Pickle in einer Textdatei gespeichert. Nun möchte ich einen neuen Menü Punkt programmieren. Mithilfe von im sollen die Kontakte, welche in der Text Datei gespeichert sind im GUI aufgelistet werden.
Meine Frage ist gibt es eine Möglichkeit (Befehl) mit dem ich die Text Datei ins GUI einlese ?
Re: In Tkinter eine Txt-Datei von Pickle anzeigen
Verfasst: Sonntag 11. Dezember 2016, 18:24
von Sirius3
@Fl4mer: Pickle-Dateien sind keine Text-Dateien! Und wenn Du weißt, wie man so eine binäre Pickeldatei speichert, dann weißt Du doch auch, wie man sie auch wieder liest.
Re: In Tkinter eine Txt-Datei von Pickle anzeigen
Verfasst: Sonntag 11. Dezember 2016, 18:31
von Fl4mer
Code: Alles auswählen
with open('highscores.txt', 'rb') as file:
high_scores = pickle.load(file)
high_scores.append((player_name, end_win))
for i in high_scores:
print(i)
Das erzeugt soetwas in der Shell:
Und so eine Ausgabe möchte ich im GUI.
Re: In Tkinter eine Txt-Datei von Pickle anzeigen
Verfasst: Sonntag 11. Dezember 2016, 18:37
von Sirius3
@Fl4mer: jetzt siehst Du's ja selbst, Du öffnest die Datei im Binärmodus, es ist nur noch die Endung irreführend.
Code: Alles auswählen
with open('highscores.pkl', 'rb') as data:
high_scores = pickle.load(data)
high_scores.append((player_name, end_win))
for idx, (name, score) in enumerate(high_scores, 1):
print("{0:2d}. {1:10s} {2:5d}".format(idx, name, score))
Besser wäre aber wirklich, ein anderes Dateiformat zu benutzen!
Re: In Tkinter eine Txt-Datei von Pickle anzeigen
Verfasst: Sonntag 11. Dezember 2016, 18:43
von Fl4mer
Aber gibt es jetzt eine Lösung, dass ich dann die Datei im GUI anzeige ?
Re: In Tkinter eine Txt-Datei von Pickle anzeigen
Verfasst: Sonntag 11. Dezember 2016, 18:49
von BlackJack
@Fl4mer: Ganz normal wie Du auch Daten aus einem Tupel in der GUI anzeigen würdest wenn das vorher nicht in einer Pickle-Datei gespeichert gewesen wäre. Das hat alles überhaupt nichts mit Pickle zu tun, sondern Du störst Dich wahrscheinlich an der Zeichenkettendarstellung von Tupeln. Die ist auch nicht für Endbenutzer gedacht, sondern für Programmierer. Du musst den Inhalt selbst so zu einer Zeichenkette verarbeiten damit es so aussieht wie *Du* das möchtest.
Re: In Tkinter eine Txt-Datei von Pickle anzeigen
Verfasst: Sonntag 11. Dezember 2016, 18:52
von noisefloor
Hallo,
Aber gibt es jetzt eine Lösung, dass ich dann die Datei im GUI anzeige ?
Du musst doch einfach nur noch die print-Funktion gegen die geeignete Methode des GUI-Frameworks deiner Wahl austauschen und an geeigneter Stellen in den Code einbauen. Fertig.
Vielleicht solltest du einfach mal _deine_ Code zeigen, der das versucht, umzusetzen. Egal, wie falsch der ist. Aber dann hat man wenigsten einen Ansatzpunkt. Im Moment erweckt das ganze eher den Anschein, als hättest du keine Lust und wartest drauuf, dass dir jemand eine mundgerechte Lösung präsentiert.
Gruß, noisefloor
Re: In Tkinter eine Txt-Datei von Pickle anzeigen
Verfasst: Sonntag 11. Dezember 2016, 19:10
von Fl4mer
Habe es jetzt hinbekommen
Code: Alles auswählen
with open('%s.txt' % self.book, 'rb') as file:
book = pickle.load(file)
x = 1
for i in book:
tk.Label(self.show_phonebook_wd, text = i).grid(row = x, column = 0)
x += 1