Das Persistenzmodul: Es dient dazu, Daten dauerhaft zu machen.
Das Pickle-Modul ist ein Python-spezifisches Persistenzmodul, das verschiedene Daten, einschließlich benutzerdefinierter Klassen, beibehalten kann und sich besser für die Speicherung komplexer Daten in Python selbst eignet.
Der persistente String ist jedoch nicht lesbar und kann nur in der Python-Umgebung verwendet werden und kann nicht für den Datenaustausch mit anderen Sprachen verwendet werden. 2. Die Rolle des Pickle-Moduls Datei. Das
pickle-Modul erstellt ein für die Python-Sprache spezifisches Binärformat. Der Benutzer muss keine Dateidetails berücksichtigen. Es hilft Ihnen, die Lese- und Schreibvorgänge für Objekte abzuschließen.
In Pickle arbeiten dumps() und Loads() mit dem Bytetyp, während bei Verwendung von dump() und lload( ) Verwenden Sie beim Lesen und Schreiben von Dateien den rb- oder wb-Modus, was bedeutet, dass nur Daten vom Typ Bytes empfangen werden.
Konvertieren und speichern Sie Python-Daten in eine Datei im Pickle-Format.
with open('data.pickle', 'wb') as f: pickle.dump(data, f)
Öffnen Sie die oben gespeicherte Datendatei mit einem Texteditor und Sie werden feststellen, dass alles eine unleserliche Codierung ist.
Laufergebnis:
将Python数据转换为pickle格式的bytes字串。
import pickle dic = {"k1":"v1","k2":123} s = pickle.dumps(dic) print(s)
运行结果:
3. pickle.load(file)
从pickle格式的文件中读取数据并转换为Python的类型。
with open('data.pickle', 'rb') as f: data = pickle.load(f)
将pickle格式的bytes字串转换为Python的类型。
import pickle dic = {"k1":"v1","k2":123} s = pickle.dumps(dic) dic2 = pickle.loads(s) print(dic2)
运行结果:
import pickle with open('data.pickle', 'rb') as f: data = pickle.load(f)
.picklle 格式的文件,用记事本打开是乱码。
运行结果:
Pickle可以持久化Python的自定义数据类型,但是在反持久化的时候,必须能够读取到类的定义。
import pickle class Person: def __init__(self, n, a): self.name = n self.age = a def show(self): print(self.name+"_"+str(self.age)) aa = Person("张三", 20) aa.show() f = open('2.txt', 'wb') pickle.dump(aa, f) f.close() # del Person # 注意这行被注释了 f = open('2.txt', 'rb') bb = pickle.load(f) f.close() bb.show()
运行结果:
Wenn Sie abbrechen del Person
del Person
这一行的注释,在代码中删除了Person类的定义,那么后面的load()
Der Kommentar in dieser Zeile löscht die Definition der Person-Klasse im Code, dann das Folgende load()
Die
-Methode führt zu einem Fehler.
5. Zusammenfassung
🎜Dieser Artikel stellt hauptsächlich das Pickle-Modul in Python vor und gibt eine detaillierte Einführung in die Hauptmethoden im Modul. 🎜🎜Das obige ist der detaillierte Inhalt vonDieser Artikel hilft Ihnen, das Pickle-Modul in Python zu verstehen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!