Gibt es eigentlich eine möglichkeit einfach ein beliebiges Dict in eine Datei zu speichern und später wieder schnell zu lesen???
Am besten noch mehere Dict's in eine Datei

Genrich
Ist sehr Interressant, funktioniert aber anscheinend nicht mit Dicts. Wenn ich versuche ein Dict mit pickle zu schreiben bekomme ich nur eine Fehlermeldung aus dem pickle Modul:Milan hat geschrieben:Pickle bzw Shelve könnte noch was für dich sein.
Code: Alles auswählen
File "C:\Python\lib\pickle.py", line 1382, in dump
Pickler(file, protocol, bin).dump(obj)
File "C:\Python\lib\pickle.py", line 210, in __init__
self.write = file.write
Code: Alles auswählen
Daten={"Text":"Ein Testtext"}
FileHandle = open("TestDatei.bin", 'w')
pickle.dump(FileHandle, Daten)
Code: Alles auswählen
import pickle
Daten={"Text":"Ein Testtext"}
FileHandle = open("TestDatei.bin", 'w')
pickle.dump(Daten, FileHandle)
Code: Alles auswählen
AttributeError: 'dict' object has no attribute 'write'
Wenn es nur darum geht Dictionaries in Strings und zurück zu bekommen, dafür hab ich mir ein eigenes kleines Pickle geschrieben.Milan hat geschrieben:Pickle bzw Shelve könnte noch was für dich sein.
Code: Alles auswählen
def PickleDict(dict):
# "\x00" -> chr(0) -> ASCII(0) - NUL
# "\x01" -> chr(1) -> ASCII(1) - SOH
Pickled=""
for i in dict:
Pickled+="\x00"+i+"\x01"+dict[i]
return Pickled
def UnPickleDict(Pickled):
dict={}
for i in Pickled[1:].split("\x00"):
temp=i.split("\x01")
dict[temp[0]]=temp[1]
return dict
Code: Alles auswählen
#speichern
file("bla.txt", "w").write(str(liste));
#lesen
liste = eval(file("bla.txt").read());