[Python-de] Liste mit Listen mit objekten und Strings speichern

Tino Schmedemann freaktab at nbnet.de
Son Mai 22 00:57:33 CEST 2005


Gerold Penz wrote:

> Tino Schmedemann schrieb:
>
>> Ich suche im Moment nach einem einfachen Weg eine Terminliste zu 
>> speichern - Aufbau ungefähr:
>> [
>>    [dateobj,timeobj,string,string]
>>    ...
>> ]
>> pickle scheint wohl nicht rekursiv zu arbeiten jedenfalls bekomme ich 
>> nur eine leere Liste zurück :-o
>
>
>
> Hi Tino!
>
> Also ich habe das mal mit dem Pickle durchprobiert:
>
> >>> import time
> >>> import pickle
> >>> l = [[time.localtime(), "Text"],[time.localtime(), "Text"]]
> >>> pickle.dump(l, file(r"C:\_Ablage\xxx.pickle", "wb"))
> >>> ll = pickle.load(file(r"C:\_Ablage\xxx.pickle"))
> >>> ll
> [[(2005, 5, 21, 22, 56, 24, 5, 141, 1), 'Text'], [(2005, 5, 21, 22, 
> 56, 24, 5, 141, 1), 'Text']]
> >>> type(l[0][0])
> <type 'time.struct_time'>
> >>> ll[0][0].tm_hour
> 22
>
> Es wurden Objekte und Strings gespeichert und nach dem Laden wurden 
> auch die Time-Objekte wieder als Objekt erkannt.
>
> Vielleicht solltest du mal ein wenig Code posten, damit der Fehler 
> lokalisiert werden kann.
>
> mfg
> Gerold
> :-)
>
ah Fehler gefunden - war n bisschen zu voreilig lag an einer nicht 
globalen Variablen was mich zur nächsten Frage motiviert :

CODE 
----------------------------------------------------------------------------------------- 


terminliste = []

def loadTerminListe():
   f = open('terminliste.bin','r')
   teilnehmerliste = pickle.load(f)
   f.close()
 
def saveTerminListe():
   f = open('terminliste.bin','w')
   pickle.dump(terminliste,f)
   f.close()

CODE 
------------------------------------------------------------------------------------------ 


das sind wohl die relevanten Teile ... code hat funktioniert bloss der 
dump hat wohl gedacht terminliste wäre ne lokale variable - wie kommt 
sowas?