Ich hab mich entschieden Python zu lernen und arbeite gerade das Python 3 Buch von Michael Weigend durch.
Nun habe ich ein Problem, dass ich nicht verstehe und hoffe, dass ich hier Hilfe finde.
In einer Aufgabe soll ich die Startnummer eines Langläufers sowie die momentane Zeit erfassen und diese in eine Datei speichern.
Das habe ich mit diesem Skript dargestellt:
Code: Alles auswählen
datei = open('daten/langlauf.txt', 'wb')
startnummer = input('startnummer: ')
import time
import pickle
while startnummer != "":
zeit = time.asctime()
speichern = [(startnummer), (zeit)]
print(speichern)
pickle.dump(speichern, datei)
startnummer = input('startnummer: ')
datei.close()
In der While-Schleife habe ich print(speichern) eingebaut, weil ich sehen wollte, was denn gespeichtert wird. So wie ich das sehe, funktioniert das Skript.
Wenn ich die Datei aber mit einem anderen Skript öffnen will, bekomme ich nur Murks angezeigt und ich grübel schon den ganzen Tag warum. Ich weiß, dass ich das auch mit den Methoden .write, .flush und .close lösen könnte, aber ich möchte gerne das pickle Problem verstehen und mit pickle umgehen können.
Das Skript, welches Murks liefert, sieht so aus:
Code: Alles auswählen
import pickle
f = open('daten/langlauf.txt', 'rb')
datei = pickle.load(f)
f.close()
for zeiten in datei:
print(zeiten[0], zeiten[1])