Cum să utilizați murăturile pentru a salva obiecte în Python

click fraud protection

Pickle, care face parte din biblioteca Python în mod implicit, este un modul important de fiecare dată când aveți nevoie de persistență între sesiunile de utilizator. Ca un modul, pickle prevede salvarea obiectelor Python între procese.

Indiferent dacă programați pentru un Bază de date, joc, forum sau o altă aplicație care trebuie să salveze informații între sesiuni, pickle este util pentru salvarea identificatorilor și setărilor. Modulul pickle poate stoca lucruri precum tipuri de date, cum ar fi booleane, șiruri de caractere și tablouri de byte, liste, dicționare, funcții și multe altele.

Notă: Conceptul de decapare este cunoscut și sub denumirea de serializare, maruntire și aplatizare. Cu toate acestea, punctul este întotdeauna același - pentru a salva un obiect într-un fișier pentru extragere ulterioară. Decaparea realizează acest lucru prin scrierea obiectului ca un flux lung de octeți.

Cod de exemplu de murături în Python

Pentru a scrie un obiect într-un fișier, utilizați un cod în următoarea sintaxă:

instagram viewer
murături de import 
obiect = Obiect ()
filehandler = deschis (nume de fișier, 'w')
pickle.dump (obiect, filehandler)

Iată cum arată un exemplu din lumea reală:

murături de import 
import matematica
obiect_pi = math.pi
file_pi = open ('nume de fișier_pi.obj', 'w')
pickle.dump (obiect_pi, file_pi)

Acest fragment scrie conținutul object_pi la dosar handler file_pi, care la rândul său este legat de fișier filename_pi.obj în directorul de execuție.

Pentru a restabili valoarea obiectului în memorie, încărcați obiectul din fișier. Presupunând că muratul nu a fost încă importat pentru utilizare, începeți prin a-l importa:

murături de import 
filehandler = deschis (nume de fișier, 'r')
object = pickle.load (filehandler)

Următorul cod restabilește valoarea pi:

murături de import 
file_pi2 = open ('nume de fișier_pi.obj', 'r')
object_pi2 = pickle.load (fișier_pi2)

Obiectul este apoi gata de utilizare din nou, de data aceasta object_pi2. Puteți, desigur, reutiliza numele originale, dacă doriți. Acest exemplu folosește denumiri distincte pentru claritate.

Lucruri de amintit despre murături

Rețineți aceste lucruri atunci când utilizați modulul de murături:

  • Protocolul de murat este specific Python - nu este garantat să fie compatibil cu limbajul încrucișat. Cel mai probabil nu puteți transfera informațiile pentru a le face utile în Perl, PHP, Java sau în alte limbi.
  • Nu există nici o garanție de compatibilitate între versiunile diferite ale Python. Incompatibilitatea există deoarece nu toate structurile de date Python pot fi serializate de modul.
  • În mod implicit, se folosește cea mai recentă versiune a protocolului pickle. Rămâne astfel, dacă nu îl schimbați manual.

Bacsis: Află, de asemenea, cum să utilizați raftul pentru a salva obiecte în Python pentru o altă metodă de menținere a continuității obiectului.

instagram story viewer