Kako koristiti Pickle za spremanje objekata na Python-u

Pickle, koji je podrazumijevano dio Python biblioteke, važan je modul kad god vam treba upornost između korisničkih sesija. Kao modul, pickle osigurava spremanje Python objekata između procesa.

Bilo da programirate za baza podataka, igra, forum ili neka druga aplikacija koja mora spremati podatke između sesija, krastavica je korisna za spremanje identifikatora i postavki. Modul odabira može pohraniti podatke poput tipova podataka poput boola, nizova i bajtova polja, popisa, rječnika, funkcija i još mnogo toga.

Bilješka: Koncept kiselosti je također poznat kao serializacija, maršarenje i spljoštavanje. No, poanta je uvijek ista - spremiti objekt u datoteku za kasnije pretraživanje. Pickling to postiže tako što objekt upisuje u jedan dugi niz bajtova.

Pickle Primjer koda u Pythonu

Da biste objekt zapisali u datoteku, koristite kôd u sljedećoj sintaksi:

uvoz krastavca 
objekt = objekt ()
filehandler = otvori (naziv datoteke, 'w')
pickle.dump (objekt, alat za obradu datoteka)

Evo kako izgleda primjer iz stvarnog svijeta:

instagram viewer
uvoz krastavca 
uvozi matematiku
object_pi = math.pi
file_pi = otvori ('ime datoteke_pi.obj', 'w')
pickle.dump (object_pi, file_pi)

Taj isječak piše sadržaj sadržaja object_pi u spis rukovatelj file_pi, koji je zauzvrat vezan za datoteku filename_pi.obj u imeniku izvršenja.

Da biste vratili vrijednost objekta u memoriju, učitajte objekt iz datoteke. Pod pretpostavkom da kiseli krastavac još nije uvežen na uporabu, započnite s uvozom:

uvoz krastavca 
filehandler = otvori (naziv datoteke, 'r')
objekt = pickle.load (filehandler)

Sljedeći kôd vraća vrijednost pi:

uvoz krastavca 
file_pi2 = open ('ime datoteke_pi.obj', 'r')
object_pi2 = pickle.load (file_pi2)

Predmet je nakon toga još jednom spreman za upotrebu, ovaj put kao object_pi2. Možete, naravno, ponovo upotrijebiti izvorna imena, ako više želite. U ovom primjeru se zbog jasnoće koriste različita imena.

Stvari koje treba zapamtiti od kiselih krastavaca

Imajte na umu ove stvari kada koristite modul za kiseli krastavac:

  • Protokol izbirljivosti specifičan je za Python - nije zajamčeno da je kompatibilan s više jezika. Najvjerojatnije ne možete prenijeti informacije da bi bile korisne na Perlu, PHP-u, Javi ili drugim jezicima.
  • Ne postoji ni jamstvo kompatibilnosti između različitih verzija Pythona. Nespojivost postoji zato što se ne može svaka struktura podataka Pythona serializirati modulom.
  • Prema zadanim postavkama koristi se najnovija inačica protokola za ukiseljenje. To ostaje tako ako ga ručno ne promijenite.

Savjet: Također saznajte kako koristiti policu za spremanje objekata na Python-u za drugu metodu održavanja kontinuiteta objekta.

instagram story viewer