Pickle Funksjoner:
- Den er hovedsakelig designet for bruk for Python-skript.
- Den brukes til å lagre pythonobjektene mellom prosessene.
- Den holder oversikt over alle serielle objekter, og objektet som er seriellisert før, vil ikke serievises igjen.
- Det kan lagre og gjenopprette klasseforekomst transparent.
- Det er ikke sikkert å bruke. Så det er ikke bedre å fjerne markering av data fra en ukjent kilde.
dump () for serialisering:
dump () -funksjonen brukes til å konvertere objektdataene til en tegnstrøm før de lagres i en fil. Denne funksjonen kan ta tre argumenter. De to første argumentene er obligatoriske, og det siste argumentet er valgfritt. Det første argumentet tar et dataobjekt som må serieiseres. Det andre argumentet tar filhåndteringsobjektet til den filen der dataene blir lagret. Det siste argumentet tar protokollnavnet.
Syntaks:
dump (data_object, file_object, [protocol])load () for deserialisering:
load () -funksjonen brukes til å konvertere tegnstrømdata fra filen til et Python-objekt. Denne funksjonen inneholder bare ett argument, og filhåndteringsobjektet til filen passerer som argumentverdien hvorfra dataene blir hentet.
Syntaks:
last (file_object)Pickle et enkelt objekt å lagre i en fil
Opprett en fil med navnet sylteagurk1.py med følgende python-skript. I det følgende skriptet, et dataobjekt som heter dataObject er erklært å lagre fem språknavn ved å gjenta for loop. Deretter brukes open () -metoden til å tilordne en filbehandler for å lage en binær fil med navnet språk. dump () funksjonen brukes her for å serieisere dataene til dataObject og lagre den i språk fil. Hvis serialiseringen vil bli utført riktig, vil en melding, "Data er serialisert", skrives ut.
# Importer pickle-modulenimportere sylteagurk
# Erklær objektet for å lagre data
dataObject = []
# Iterer for-sløyfen fem ganger og ta språknavn
for n i rekkevidde (5):
raw = input ('Skriv inn et språknavn:')
dataObject.legge til (rå)
# Åpne en fil for å skrive data
file_handler = åpen ('språk', 'wb')
# Dump dataene til objektet i filen
sylteagurk.dump (dataObject, file_handler)
# lukk filbehandleren for å frigjøre ressursene
filhåndterer.Lukk()
# Skriv ut melding
skriv ut ('Data serialiseres')
Produksjon:
Etter at du har kjørt skriptet, tar det fem språknavn som input.
Fjern data fra en fil
unpickling data er det motsatte av pickling data. Opprett en fil med navnet pickle2.py med følgende python-skript. Her, åpen() metoden brukes til å åpne den binære filen som heter språk, opprettet i forrige eksempel. laste() funksjonen brukes til å fjerne dataene fra filen og lagre den i variabelen dataObject. Neste, til loop brukes iterere dataene fra dataObject og skriv ut i terminalen.
# Importer pickle-modulenimportere sylteagurk
# Åpne en filbehandler for å lese en fil der dataene vil lastes inn
file_handler = åpen ('språk', 'rb')
# Last inn dataene fra filen etter deserialisering
dataObject = sylteagurk.last (filhåndterer)
# Lukk filbehandleren
filhåndterer.Lukk()
# Skriv ut melding
skriv ut ('Data etter deserialisering')
# Iterer løkken for å skrive ut dataene etter deserialisering
for val in dataObject:
print ('Dataverdien:', val)
Produksjon:
Følgende utdata vises etter kjøring av skriptet.
Pickle et klasseobjekt til en fil
Hvordan et klasseobjekt kan bli syltet vises i følgende eksempel. Opprett en fil med navnet sylteagurk3.py med følgende manus. Her, Ansatt klasse er erklært for å tilordne tre dataverdier for en ansatt. Deretter et filbehandlerobjekt som heter fileHandler er opprettet for å åpne en fil for skriving. Etter initialisering av klasseobjektet serialiseres data ved hjelp av dump () funksjon og lagres i filen som heter ansattData. Hvis filen vil opprettes riktig, så meldingen, “Data serialiseres” vil skrive ut.
# Importer syltemodulimportere sylteagurk
# Erklær ansattklassen for å lagre verdien
klasse Ansatt:
def __init __ (selv, navn, e-post, post):
selv-.navn = navn
selv-.e-post = e-post
selv-.innlegg = innlegg
#Lag medarbeiderobjekt
empObject = Ansatt ('Farheen', '[email protected]', 'Manager')
# Åpne filen for lagringsdata
fileHandler = åpen ('employeeData', 'wb')
# Lagre dataene i filen
sylteagurk.dump (empObject, fileHandler)
# Lukk filen
fileHandler.Lukk()
# Skriv ut melding
skriv ut ('Data er seriell')
Produksjon:
Følgende utdata vises etter kjøring av skriptet.
Fjern data til et klasseobjekt
En klasse med nødvendige egenskaper og metoder vil kreve å erklære for å hente dataene fra en fil til et klasseobjekt. Opprett en fil med navnet pickle4.py med følgende kode. Ansatt klasse er definert her for å hente dataene. fileObject variabel brukes til å åpne filen, ansattData for lesing. Neste, laste() funksjonen brukes til å lagre dataene i klasseobjektet etter deserialisering. vise() funksjon av Ansatt klasse kalles for å skrive ut dataverdiene til klasseobjektet.
# Importer syltemodulimportere sylteagurk
# Erklare ansattklasse for å lese og skrive ut data fra en fil
klasse Ansatt:
def __init __ (selv, navn, e-post, post):
selv-.navn = navn
selv-.e-post = e-post
selv-.innlegg = innlegg
def display (selv):
print ('Medarbeiderinformasjon:')
utskrift ('Navn:', selvtill.Navn)
print ('E-post:', selv.e-post)
print ('Post:', selv.post)
# Åpne filen for lesing
fileObject = åpen ('employeeData', 'rb')
# Fjern markeringen av dataene
ansatt = sylteagurk.last (fileObject)
# Lukk filen
fileObject.Lukk()
# skriv ut datarammen
ansatt.vise()
Produksjon:
Følgende utdata vises etter kjøring av skriptet.
Konklusjon
Pickle-modul er en nyttig funksjon i python for dataserialisering og deserialisering. Etter å ha fullført eksemplene vist i denne opplæringen, vil dataoverføringen fra ett pythonscript til et annet pythonscript være lettere for alle.