Caracteristici murături:
- Este conceput în principal pentru a fi folosit pentru scriptul Python.
- Este folosit pentru salvarea obiectelor python între procese.
- Acesta ține evidența tuturor obiectelor serializate, iar obiectul care este serializat înainte nu va mai fi serializat.
- Poate salva și restaura instanța clasei în mod transparent.
- Nu este sigur de utilizat. Deci, nu este mai bine să scoateți datele dintr-o sursă necunoscută.
dump () pentru serializare:
funcția dump () este utilizată pentru a converti datele obiectului într-un flux de caractere înainte de a le salva într-un fișier. Această funcție poate lua trei argumente. Primele două argumente sunt obligatorii, iar ultimul argument este opțional. Primul argument ia un obiect de date care trebuie serializat. Al doilea argument ia obiectul de gestionare a fișierului acelui fișier în care datele stocate vor fi stocate. Ultimul argument ia numele protocolului.
Sintaxă:
dump (data_object, file_object, [protocol])load () pentru deserializare:
funcția load () este utilizată pentru a converti datele fluxului de caractere din fișier într-un obiect Python. Această funcție conține un singur argument și obiectul de gestionare a fișierului din fișier trece ca valoare a argumentului de unde vor fi preluate datele.
Sintaxă:
încărcare (fișier_obiect)Pickle un obiect simplu de stocat într-un fișier
Creați un fișier numit murătură1.py cu următorul script python. În scriptul următor, un obiect de date numit dataObject este declarat pentru a stoca cinci nume de limbi iterând bucla for. Apoi, metoda open () este utilizată pentru a atribui un handler de fișiere pentru crearea unui fișier binar numit limbi. dump () funcția este utilizată aici pentru a serializa datele dataObject și păstrați-l în limbi fişier. Dacă serializarea se va face corect, se va imprima un mesaj, „Datele sunt serializate”.
# Importați modulul de murăturiimport murat
# Declarați obiectul pentru stocarea datelor
dataObject = []
# Iterează bucla for de 5 ori și ia nume de limbă
pentru n în intervalul (5):
raw = input („Introduceți un nume de limbă:”)
dataObject.adăuga (brut)
# Deschideți un fișier pentru scrierea datelor
file_handler = open ('limbi', 'wb')
# Aruncați datele obiectului în fișier
murături.dump (dataObject, file_handler)
# închideți gestionarul de fișiere pentru a elibera resursele
manipulator_fișier.închide()
# Imprimați mesajul
print („Datele sunt serializate”)
Ieșire:
După rularea scriptului, vor fi introduse cinci nume de limbi.
Desfaceți datele dintr-un fișier
dezlipirea datelor este opusul datelor de decapare. Creați un fișier numit murătură2.py cu următorul script python. Aici, deschis() metoda este utilizată pentru a deschide fișierul binar numit limbi, creat în exemplul anterior. sarcină() funcția este utilizată pentru a dezactiva datele din fișier și a le stoca în variabilă dataObject. Următorul, pentru se utilizează bucla iterați datele din dataObject și tipăriți în terminal.
# Importați modulul de murăturiimport murat
# Deschideți un handler de fișiere pentru citirea unui fișier de unde se vor încărca datele
file_handler = open ('limbi', 'rb')
# Încărcați datele din fișier după deserializare
dataObject = murătură.încărcare (file_handler)
# Închideți gestionarul de fișiere
manipulator_fișier.închide()
# Imprimați mesajul
print („Date după deserializare”)
# Iterează bucla pentru a imprima datele după deserializare
pentru val în dataObject:
print („Valoarea datelor:”, val)
Ieșire:
Următoarea ieșire va apărea după rularea scriptului.
Pickle un obiect de clasă într-un fișier
Modul în care un obiect de clasă poate fi murat este prezentat în exemplul următor. Creați un fișier numit murături3.py cu următorul script. Aici, Angajat clasa este declarată pentru a atribui trei valori de date unui angajat. Apoi, un obiect de gestionare a fișierelor numit fileHandler este creat pentru a deschide un fișier pentru scriere. După inițializarea obiectului clasei, datele sunt serializate folosind dump () funcție și stocate în fișierul numit dataData angajat. Dacă fișierul se va crea corect, atunci mesajul, „Datele sunt serializate” va imprima.
# Importați modul de murăturiimport murat
# Declarați clasa angajaților pentru a stoca valoarea
clasa Angajat:
def __init __ (self, name, email, post):
de sine.nume = nume
de sine.email = email
de sine.post = post
#Creați obiectul angajatului
empObject = Angajat ('Farheen', '[email protected]', 'Manager')
# Deschideți fișierul pentru datele din magazin
fileHandler = open ('data angajat', 'wb')
# Salvați datele în fișier
murături.dump (empObject, fileHandler)
# Închideți fișierul
fileHandler.închide()
# Imprimați mesajul
print („Datele sunt serializate”)
Ieșire:
Următoarea ieșire va apărea după rularea scriptului.
Desfaceți datele într-un obiect de clasă
O clasă cu proprietățile și metodele necesare va trebui să declare pentru recuperarea datelor dintr-un fișier într-un obiect de clasă. Creați un fișier numit murături4.py cu următorul cod. Angajat clasa este definită aici pentru a prelua datele. fileObject variabila este utilizată pentru a deschide fișierul, dataData angajat pentru citit. Următorul, sarcină() funcția este utilizată pentru a stoca datele în obiectul clasei după deserializare. afişa() funcția Angajat clasa este chemată să imprime valorile de date ale obiectului clasei.
# Importați modul de murăturiimport murat
# Declarați clasa angajaților să citească și să imprime date dintr-un fișier
clasa Angajat:
def __init __ (self, name, email, post):
de sine.nume = nume
de sine.email = email
de sine.post = post
afișare def (auto):
print („Informații pentru angajați:”)
print ('Nume:', auto.Nume)
print („E-mail:”, auto.e-mail)
print („Post:”, auto.post)
# Deschideți fișierul pentru citire
fileObject = deschis ('angajatDate', 'rb')
# Desfaceți datele
angajat = murat.incarcare (fileObject)
# Închideți fișierul
fileObject.închide()
#imprimă cadrul de date
angajat.afişa()
Ieșire:
Următoarea ieșire va apărea după rularea scriptului.
Concluzie
Modulul Pickle este o caracteristică utilă a python pentru serializarea și deserializarea datelor. După finalizarea exemplelor prezentate în acest tutorial, transferul de date dintr-un script python în alt script python va fi mai ușor pentru oricine.