Das Pickle-Modul von Python implementiert die grundlegende Datensequenz und Deserialisierung. Durch die Serialisierungsoperation des Pickle-Moduls können wir die im Programm ausgeführten Objektinformationen in einer Datei speichern und durch die Deserialisierungsoperation des Pickle-Moduls können wir das vom letzten Programm gespeicherte Objekt aus der Datei erstellen.
Basisschnittstelle:
pickle.dump(obj, file, [,protocol])
Hinweis: Speichern Sie das Objekt obj in der Dateidatei.
Protokoll ist die für die Serialisierung verwendete Protokollversion, 0: ASCII-Protokoll, das serialisierte Objekt wird durch druckbaren ASCII-Code dargestellt. 1: altes Binärprotokoll, eingeführt in Version 2.3, das besser ist als das vorherige Effizienter. Unter anderem sind die Protokolle 0 und 1 mit älteren Python-Versionen kompatibel. Der Standardwert des Protokolls ist 0.
Datei: Dateiähnliches Objekt, in dem das Objekt gespeichert wird. Die Datei muss über eine write()-Schnittstelle verfügen. Die Datei kann eine im „w“-Modus geöffnete Datei oder ein StringIO-Objekt oder ein anderes Objekt sein, das die write()-Schnittstelle implementiert. Wenn Protokoll>=1, muss das Dateiobjekt im Binärmodus geöffnet werden.
pickle.load(file)
Hinweis: Lesen Sie einen String aus der Datei und rekonstruieren Sie ihn in das ursprüngliche Python-Objekt.
Datei: Dateiähnliches Objekt mit den Schnittstellen read() und readline().
Ein einfacher Code
#使用pickle模块将数据对象保存到文件 import pickle data1 = {'a': [1, 2.0, 3, 4+6j], 'b': ('string', u'Unicode string'), 'c': None} selfref_list = [1, 2, 3] selfref_list.append(selfref_list) output = open('data.pkl', 'wb') # Pickle dictionary using protocol 0. pickle.dump(data1, output) # Pickle the list using the highest protocol available. pickle.dump(selfref_list, output, -1) output.close()
#使用pickle模块从文件中重构python对象 import pprint, pickle pkl_file = open('data.pkl', 'rb') data1 = pickle.load(pkl_file) pprint.pprint(data1) data2 = pickle.load(pkl_file) pprint.pprint(data2) pkl_file.close()