Ich habe die Informationen in den Python-Dokumenten durchgesehen , bin aber immer noch ein wenig verwirrt. Könnte jemand Beispielcode posten, der eine neue Datei schreibt und dann pickle verwendet, um ein Wörterbuch darin abzulegen?
python
dictionary
pickle
Chachmu
quelle
quelle
Antworten:
Versuche dies:
quelle
pickle.HIGHEST_PROTOCOL
?__slots__
). Ich sage nicht, dass Sie immer verwenden solltenHIGHEST_PROTOCOL
, aber sicherzustellen, dass Sie nicht Protokoll 0 oder 1 verwenden, ist eigentlich ziemlich wichtig.pickle.HIGHEST_PROTOCOL
eigentlich?Der Vorteil
HIGHEST_PROTOCOL
ist, dass Dateien kleiner werden. Dies macht das Lösen manchmal viel schneller.Wichtiger Hinweis : Die maximale Dateigröße von pickle beträgt ca. 2 GB.
Alternativer Weg
Alternative Formate
Für Ihre Anwendung kann Folgendes wichtig sein:
Siehe auch: Vergleich der Datenserialisierungsformate
Wenn Sie eher nach einer Möglichkeit suchen, Konfigurationsdateien zu erstellen, lesen Sie möglicherweise meinen kurzen Artikel Konfigurationsdateien in Python
quelle
quelle
Im Allgemeinen schlägt das Beizen von a
dict
fehl, es sei denn, Sie haben nur einfache Objekte wie Zeichenfolgen und Ganzzahlen.Selbst ein wirklich einfacher
dict
wird oft scheitern. Es kommt nur auf den Inhalt an.Wenn Sie jedoch einen besseren Serializer wie
dill
oder verwendencloudpickle
, können die meisten Wörterbücher eingelegt werden:Oder wenn Sie Ihre
dict
in einer Datei speichern möchten ...Das letztere Beispiel ist identisch mit allen anderen hier veröffentlichten guten Antworten (die, abgesehen von der Vernachlässigung der Auswahlbarkeit der Inhalte,
dict
gut sind).quelle
Normalerweise ist es vorzuziehen, die cPickle-Implementierung zu verwenden
quelle
Wenn Sie das Diktat nur in einer einzigen Datei speichern möchten, verwenden Sie es
pickle
wie folgtWenn Sie mehrere Wörterbücher in mehreren Dateien zum Zwischenspeichern und Speichern komplexerer Daten speichern und wiederherstellen möchten, verwenden Sie anycache . Es erledigt alle anderen Dinge, die Sie brauchen
pickle
Anycache speichert die unterschiedlichen
myfunc
Ergebnisse abhängig von den Argumenten in verschiedenen Dateiencachedir
und lädt sie neu.Weitere Einzelheiten finden Sie in der Dokumentation .
quelle
Einfache Möglichkeit, Python-Daten (z. B. ein Wörterbuch) in eine Pickle-Datei zu kopieren.
quelle
quelle
Ich fand das Beizen verwirrend (möglicherweise weil ich dick bin). Ich fand jedoch, dass dies funktioniert:
Was Sie dann in eine Textdatei schreiben können. Ich habe den Versuch, pickle zu verwenden, aufgegeben, da ich Fehler bekam, die mich aufforderten, Ganzzahlen in eine .dat-Datei zu schreiben. Ich entschuldige mich dafür, dass ich keine Gurke benutze.
quelle
dict
weitere Tiefe von Objekten zu enthalten (die möglicherweise nur von gedruckt werden) Name) und / oder Objekte ohne oder mit vollständiger Zeichenfolgendarstellung.