Ako používať Pickle na ukladanie objektov v Pythone

Pickle, ktorý je štandardne súčasťou knižnice Python, je dôležitým modulom vždy, keď potrebujete vytrvalosť medzi užívateľskými reláciami. Ako modul pickle umožňuje ukladanie objektov Python medzi procesmi.

Či už programujete pre databázy, hra, fórum alebo nejaká iná aplikácia, ktorá musí ukladať informácie medzi reláciami, je pickle užitočný na ukladanie identifikátorov a nastavení. Modul pickle môže ukladať veci, ako sú typy údajov, ako sú booleovské reťazce, reťazce a bajtové polia, zoznamy, slovníky, funkcie a ďalšie.

Poznámka: Pojem morenie je tiež známy ako serializácia, zoradenie a sploštenie. Bod je však vždy rovnaký - uloženie objektu do súboru na neskoršie načítanie. Nakladanie to dosiahne tak, že objekt zapíše ako jeden dlhý tok bajtov.

Príklad uhorky v Pythone

Ak chcete zapísať objekt do súboru, použite kód v nasledujúcej syntaxi:

importovať uhorky 
object = Object ()
filehandler = open (názov súboru, 'w')
pickle.dump (objekt, filehandler)

Ako vyzerá príklad v skutočnom svete:

importovať uhorky 
instagram viewer

importovať matematiku
object_pi = math.pi
file_pi = open ('filename_pi.obj', 'w')
pickle.dump (object_pi, file_pi)

Tento úryvok píše obsah object_pi do súboru handler file_pi, ktorý je zase viazaný na súbor filename_pi.obj v adresári exekúcie.

Ak chcete obnoviť hodnotu objektu do pamäte, načítať objekt zo súboru. Za predpokladu, že uhorka ešte nebola na použitie importovaná, začnite importovaním:

importovať uhorky 
filehandler = open (názov súboru, 'r')
object = pickle.load (filehandler)

Nasledujúci kód obnovuje hodnotu pi:

importovať uhorky 
file_pi2 = otvorené ('filename_pi.obj', 'r')
object_pi2 = pickle.load (file_pi2)

Objekt je potom opäť pripravený na použitie, tentoraz ako object_pi2. Ak chcete, môžete samozrejme znova použiť pôvodné názvy. Tento príklad používa zreteľné názvy.

Čo je potrebné pamätať na Pickle

Pri používaní modulu pickle majte na pamäti tieto veci:

  • Protokol o náleve je špecifický pre Python - nie je zaručené, že bude kompatibilný s rôznymi jazykmi. S najväčšou pravdepodobnosťou nemôžete preniesť tieto informácie, aby boli užitočné v jazykoch Perl, PHP, Java alebo v iných jazykoch.
  • Nezaručuje sa ani kompatibilita medzi rôznymi verziami Pythonu. Je nekompatibilita, pretože nie každá modulácia dát Python môže byť modulovaná modulom.
  • V predvolenom nastavení sa používa najnovšia verzia protokolu o náleve. Zostane to tak, pokiaľ ho manuálne nezmeníte.

Tip: Tiež zistiť ako používať policu na ukladanie objektov v Pythone pre iný spôsob udržiavania kontinuity objektu.