Heim  >  Artikel  >  Backend-Entwicklung  >  Dieser Artikel hilft Ihnen, das Pickle-Modul in Python zu verstehen

Dieser Artikel hilft Ihnen, das Pickle-Modul in Python zu verstehen

Go语言进阶学习
Go语言进阶学习nach vorne
2023-07-25 14:27:161750Durchsuche

1. Was ist das Pickle-Modul?

Was ist das Persistenzmodul?

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.

Die Verwendung von pickle spart viele Codezeilen als das Öffnen einer Datei, das Konvertieren des Datenformats und das Schreiben.


3. Hauptmethoden

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.

1. pickle.dump(obj, file)

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:

Dieser Artikel hilft Ihnen, das Pickle-Modul in Python zu verstehen

2. pickle.dumps(obj)  

将Python数据转换为pickle格式的bytes字串。

import pickle
dic = {"k1":"v1","k2":123}
s = pickle.dumps(dic)
print(s)

运行结果:

Dieser Artikel hilft Ihnen, das Pickle-Modul in Python zu verstehen

3. pickle.load(file)  

从pickle格式的文件中读取数据并转换为Python的类型。

with open('data.pickle', 'rb') as f:
    data = pickle.load(f)

4. pickle.loads(bytes_object)  

将pickle格式的bytes字串转换为Python的类型。

import pickle
dic = {"k1":"v1","k2":123}
s = pickle.dumps(dic)
dic2 = pickle.loads(s)
print(dic2)

运行结果:

Dieser Artikel hilft Ihnen, das Pickle-Modul in Python zu verstehen


四、项目演示

例1:

import pickle


with open('data.pickle', 'rb') as f:
    data = pickle.load(f)

.picklle 格式的文件,用记事本打开是乱码。

运行结果:

Dieser Artikel hilft Ihnen, das Pickle-Modul in Python zu verstehen


例2

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()

运行结果:

Dieser Artikel hilft Ihnen, das Pickle-Modul in Python zu verstehen

Wenn Sie abbrechen del Persondel 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. Dieser Artikel hilft Ihnen, das Pickle-Modul in Python zu verstehen


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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:Go语言进阶学习. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen