Ich benutze pickle bzw. cPickle eigentlich schon nen Weilchen und dachte, man würde einfach einmal die "load"-Methode benutzen, um ein serialisiertes Objekt aus einer Datei zu lesen.
Aber nun hab ich folgendes Verhalten festgestellt:
Code: Alles auswählen
>>> import cPickle
>>> f = file("/Library/Application Support/ChrisSek/Report.p", "rb+")
>>> cPickle.load(f)
[{'Action': 'ActionMove', 'ArgDict': {'source': u'/Volumes/Test HD/Src',
'destination': u'/Volumes/Test HD/Desti'}, 'Type': 0, 'Key':
'CoreMsgStart', 'Time': (2006, 3, 10, 13, 0, 31, 4, 69, 0)}]
>>> cPickle.load(f)
[{'Action': 'ActionMove', 'ArgDict': {'source': u'/Volumes/Test HD/Src',
'destination': u'/Volumes/Test HD/Desti'}, 'Type': 0, 'Key':
'CoreMsgStart', 'Time': (2006, 3, 10, 13, 0, 31, 4, 69, 0)},
{'Action': 'ActionMove', 'ArgDict': {'source': u'/Volumes/Test HD/Src'},
'Type': 1, 'Key':
'CoreMsgMoveSourceEmpty', 'Time': (2006, 3, 10, 13, 0, 31, 4, 69, 0)}]
>>> cPickle.load(f)
[{'Action': 'ActionMove', 'ArgDict': {'source': u'/Volumes/Test HD/Src',
'destination': u'/Volumes/Test HD/Desti'}, 'Type': 0, 'Key':
'CoreMsgStart', 'Time': (2006, 3, 10, 13, 0, 31, 4, 69, 0)},
{'Action': 'ActionMove', 'ArgDict': {'source': u'/Volumes/Test HD/Src'},
'Type': 1, 'Key':
'CoreMsgMoveSourceEmpty', 'Time': (2006, 3, 10, 13, 0, 31, 4, 69, 0)},
{'Action': '', 'ArgDict': {'source': u'/Volumes/Test HD/Src'},
'Type': 0, 'Key':
'CoreMsgEnd', 'Time': (2006, 3, 10, 13, 0, 31, 4, 69, 0)}]
>>> cPickle.load(f)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
EOFError
Ist das so gewollt? Hab in der Doku nichts dazu gelesen. Vielleicht hab ich aber auch Tomaten auf den Augen - oder so...
Kennt das Problem jemand? Vielleicht noch ein Detail: Ich serialisiere meine Liste mit dem Protokoll 2 (also binär und mit Python 2.4.1) und verwendet beim öffnen der Datei "wb+".
Hab's auch schon mal mit einem String probiert. Also quasi über Protokoll 0 serialisiert und dann den String eingelesen und pickle.loads(s) aufgerufen --> Gleiches Problem!
Vielen Dank und Grüße aus Bremen,
Chris