Ich möchte Pickle verwenden, insbesondere cPickle, um die Daten meiner Objekte als Ordner von Dateien zu katalogisieren, die Module, Projekte, Modulobjekte, Szenenobjekte usw. darstellen. Gibt es einen einfachen Weg, dies zu tun?Wie pickel ich eine Objekthierarchie, * jedes Objekt normalerweise eine eigene Datei *, so dass das Speichern schnell ist?
Das erneute Öffnen ist also ein wenig schwierig, da jedes übergeordnete Objekt einen Verweis auf untergeordnete/untergeordnete Objekte speichert, während die Pickle-Daten des übergeordneten Elements einen Dateipfad zum Objekt enthalten.
Ich begann mit einer PathUtil-Klasse, die alle Klassen erben, aber Probleme aufgetreten sind. Hat jemand ein ähnliches Problem/Feature der Dateispeicherung/Wiederherstellung gelöst?
Je transparenter es mit vorhandenem Code funktioniert, desto besser. Wenn beispielsweise die Verwendung einer Metaklasse __call__
dazu führt, dass die vorhandene Konstruktorsyntax gleich bleibt, ist das ein Plus. Zum Beispiel wird die statische __call__
die Beizdatei zuerst prüfen und laden es, wenn es existiert, während eine Standardkonstruktion, wenn es nicht tut.
Ich denke '__reduce__' könnte hier gut verwendet werden. –