Python Pickle Dump

Python Pickle Dump
Python Pickle er et verktøy som kan serialisere og deserialisere strukturen til et Python -objekt. Pickling lar ethvert objekt i Python lagres på en plate, og syltetøy kan gjøres med ethvert objekt. Dataene vil først bli behandlet av Python Pickle, og deretter vil de bli omgjort til en karakterstrøm. Objektet vil bli konvertert på en slik måte at karakterstrømmen vil ha den informasjonen som kreves for å samle objektet i et annet Python -skript. I følge dokumentasjonen skal det bemerkes at pickle -modulen ikke gir sikkerhet mot data som er bevisst eller utilsiktet produsert. Derfor bør du aldri plyndre data som er innhentet fra en kilde som ikke kan stole på eller som ikke er validert.

Den neste delen vil lære oss hvordan du lagrer data ved hjelp av Pythons sylteagramformat. Vi må først importere pickle -modulen for å gjøre denne oppgaven. Dataene fra objektet kan deretter lagres i filen ved å implementere sylteagurken.dump () -metode.

Syntaks

Sylteagurken.Dump () -metode godtar to parametere. Objektet du har tenkt å lagre blir sendt inn som den første parameteren. Den andre uttalelsen er katalogenheten du mottar etter tilgang til den spesifiserte filen i skrivebinær (WB) -modus.

Eksempel 01: Sett inn flere datafiler i en pickle -fil ved hjelp av sylteagurkfunksjonen

I dette eksemplet skal vi se på et enkelt eksempel der vi skal bruke en sylteagurk.dump () metode til en fil. Det første trinnet er å importere pickle -modulen i Python for å bruke metodene. I neste linje brukes en input -ledetekst for å be brukeren om å legge inn antall sifre brukeren ønsker å legge inn. Det er lagret i variabelen “Num”. En tom liste initialiseres også som "data". Da kjøres en for loop for antall datatider. I hver sløyfe ber programmet brukeren legge inn dataene. Disse dataene er vedlagt "data" -listen.

Når alle dataene er vedlagt og sløyfen slutter, åpnes en fil i skrivebinær (WB) -modus og lagres i variabelen "Fil". I neste linje, sylteagurk.Dump () -metode implementeres på den gitte filen med "data". Endelig er filen lukket.

På utgangsterminalen kan vi se inndata -spørsmålene som programmet ba brukeren legge inn. I dette eksemplet var mengden data 2. Den ene var nummer 12 og den andre var nummer 15. Hvis vi åpner filen, vil vi kunne se at dataene er skrevet i den filen.

Vi kan se tre filer for følgende program. Den ene er filen som koden er skrevet. Hovedfilen er der koden utføres. "Info" -filen er den binære filen som er opprettet av Pickle.dump () der vi dumpet dataene.

Nå får vi se hvordan vi kan hente pickle -dataene. For å hente pickle -dataene tilbake, må du bruke sylteagurken.Last () Metode. Når du ser en fil i Read-Binary (RB) -modus, kan du få tilgang til kataloginnholdet.

Som sylteagurken.Last () er også en metode for pickle -modulen, vi må først importere denne modulen for å bruke den. I neste linje åpnes "Info" -filen i RB -modus. Så pickle.Last () -metoden kalles på filobjektet og data lagres i variabelen som heter “Data”. Deretter krysses en for loop gjennom dataene for å skrive ut dataene på utgangsterminalen, som vist i følgende skjermbilde:

Eksempel 02: Sett inn flere lister med data i en pickle -fil ved hjelp av sylteagurken

En annen prøve av sylting og upikkende data vises nedenfor:

I forrige kode er to ordbøker opprettet for to personer, nemlig John og Logan, med sine respektive navn og alder. "List1" -ordboken inneholder attributtene til begge personer. Deretter åpnes "Info" -filen i Append-Mode (AB). Pickle.dump () brukes på filobjektet som legger til "list1" -ordboken/dataene til det. Endelig er filen lukket.

I forrige kode bruker vi pickle.Load () Metode for å plyndre dataene som vi nettopp syltet i "info" -filen. Filen åpnes i RB -modus og pickle.Last () -metoden brukes på filobjektet. De returnerte dataene lagres i variabelen som heter “List1”. For -sløyfen brukes deretter til å vise hele innholdet i “List1” på sekundærterminalene, som sett i følgende bilde:

Eksempel 03: Sett inn flere lister med data i uten en pickle -fil ved hjelp av sylteagurkfunksjonen og deretter laste den inn i konsollen

La oss se på flere eksempler på sylting og upikkende data uten å bruke en fil. Også denne gangen vil vi bruke sylteagurk.dumper () og sylteagurk.Loads () Metoder. Den eneste forskjellen er at den sistnevnte metoden oppretter og leser filen som inneholder serialiseringsresultatet, mens Dumps () og Loads () -metoden fungerer på en streng i stedet for en fil og returnerer en streng.

I forrige kode opprettes to forskjellige ordbøker som inneholder respektive detaljer om John og Logan. Deretter opprettes en primær ordbok "List1", og disse to separate ordbøkene blir lagt til den. I neste linje, pickle .Dumps () -metode brukes til å dumpe dataene som en streng i det nye objektet, “a”. I neste linje er de dumpede dataene uplukket ved hjelp av en sylteagurk.Loads () Metode og lagrer dataene i en ny variabel, “oppføring”. Resultatfanen presenterer deretter de uplukte dataene som sett på bildet under.

Eksempel 04: Sett inn data i en pickle -fil ved å bruke klassestrukturen for å gi data inn i sylteagurkfunksjonen

I dette eksemplet vil vi bruke klasser for å forstå arbeidet med sylteagurk og upikkelmetoder. I følgende kode opprettes en klasse som heter "Datalist", med en funksjon Load_Data (). Et heltall og en streng er definert i objekter, henholdsvis “A” og “B”. Så utenfor klassen opprettes et objekt av datalist () med navnet "OBJ", som inneholder dataene. Deretter blir dette objektet syltet og lagret i en ny variabel "data" ved hjelp av sylteagurk.Dumps () -metode. For å fjerne dataene, pickle.Loads () -metoden implementeres på “Data”.

Endelig de returnerte dataene fra Pickle.Loads () vises på utgangsterminalen i form av ordboken, som vist i følgende skjermbilde:

Eksempel 05: Sett inn en lang streng i en pickle -fil ved å bruke komprimeringsfunksjonen sammen med sylteagurken

Neste sak vil demonstrere hvordan du kan komprimere syltede gjenstander. Du kan bruke BZ2 -modulen fra Standard Python -biblioteket for å komprimere en syltet streng ved hjelp av BZIP2.

I denne koden initialiseres data fra første streng type og lagres i en variabel med navnet "Data". I neste linje blir disse dataene syltet med en sylteagurk. dumper () til objektet som heter “dump”. Deretter komprimeres dette objektet ved bruk av BZ2.komprimering () metode og lagret i objektet “Dump2”. Her inneholder "dump" de ukomprimerte dataene fra strengen mens "Dump2" -objektet inneholder komprimerte data. Vi kan bevise dette ved å finne lengden på begge objektene ved å bruke Len () -kommandoen.

Konklusjon

Jeg håper gjennom denne opplæringen, du forstår nå hvordan du bruker Pythons Pickle -modul for å konvertere et objekthierarki til en strøm av byte som kan lagres til platen eller sendes over et nettverk så vel som Pythons Deserialization Method. Du er nå godt utstyrt til å vedvare gjenstander ved hjelp av Python Pickle-pakken.