Heim  >  Artikel  >  Backend-Entwicklung  >  Python speichert Objekte in Dateien

Python speichert Objekte in Dateien

巴扎黑
巴扎黑Original
2016-11-26 10:19:532162Durchsuche

1. Pickle-Paket
(1) Konvertieren Sie Objekte im Speicher in Textströme:

import pickle  
# define class  
class Bird(object):  
    have_feather = True  
    way_of_reproduction  = 'egg'  
  
summer       = Bird()                 # construct an object  
picklestring = pickle.dumps(summer)   # serialize object



Verwenden Sie die Methode pickle.dumps(), um das Objekt zu konvertieren ein String-Picklestring (also ein Textstream). Dann können wir die normale Textspeichermethode verwenden, um die Zeichenfolge in der Datei zu speichern (Eingabe und Ausgabe der Textdatei).

Natürlich können wir auch die Methode pickle.dump() verwenden, um die beiden oben genannten Teile zu einem zu kombinieren:

import pickle  
# define class  
class Bird(object):  
    have_feather = True  
    way_of_reproduction  = 'egg'  
  
summer       = Bird()                        # construct an object  
fn           = 'a.pkl'  
with open(fn, 'w') as f:                     # open file with write-mode  
    picklestring = pickle.dump(summer, f)   # serialize and save object

Das Objekt Sommer wird in der Datei a gespeichert .pkl

(2), Rekonstruieren Sie das Objekt

Zuerst müssen wir den Text aus dem Text lesen und ihn in einer Zeichenfolge speichern (Eingabe und Ausgabe der Textdatei). Verwenden Sie dann die Methode pickle.loads(str), um die Zeichenfolge in ein Objekt umzuwandeln. Denken Sie daran, dass unser Programm zu diesem Zeitpunkt bereits über eine Klassendefinition für das Objekt verfügen muss.

Darüber hinaus können wir auch die Methode pickle.load() verwenden, um die oben genannten Schritte zusammenzuführen:

import pickle  
# define the class before unpickle  
class Bird(object):  
    have_feather = True  
    way_of_reproduction  = 'egg'  
fn     = 'a.pkl'  
with open(fn, 'r') as f:  
    summer = pickle.load(f)   # read file and build object



2 > Die Funktionen und die Verwendung des cPickle-Pakets sind nahezu identisch mit denen des pickle-Pakets (die Unterschiede werden selten verwendet. Der Unterschied besteht darin, dass cPickle auf der Grundlage der C-Sprache geschrieben ist und 1.000-mal schneller ist als das pickle-Paket. Wenn wir im obigen Beispiel das cPickle-Paket verwenden möchten, können wir die Importanweisung wie folgt ändern:
cPickle als Pickle importieren
Es müssen keine Änderungen vorgenommen werden.


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Python-KleinigkeitenNächster Artikel:Python-Kleinigkeiten