Pickle Funktioner:
- Det er hovedsageligt designet til brug til Python-script.
- Det bruges til at gemme python-objekter mellem processerne.
- Det holder styr på alle serieliserede objekter, og det objekt, der er serialiseret før, vil ikke serialiseres igen.
- Det kan gemme og gendanne klasseinstans gennemsigtigt.
- Det er ikke sikkert at bruge. Så det er ikke bedre at fjerne markeringen af data fra en ukendt kilde.
dump () til serialisering:
dump () -funktion bruges til at konvertere objektdataene til en tegnstrøm, før de gemmes i en fil. Denne funktion kan tage tre argumenter. De to første argumenter er obligatoriske, og det sidste argument er valgfri. Det første argument tager et dataobjekt, der skal serialiseres. Det andet argument tager filhåndteringsobjektet for den fil, hvor de pckledata gemmes. Det sidste argument tager protokolnavnet.
Syntaks:
dump (data_object, file_object, [protokol])load () til deserialisering:
load () -funktion bruges til at konvertere tegnstrømdata fra filen til et Python-objekt. Denne funktion indeholder kun ét argument, og filhåndteringsobjektet for filen passerer som argumentværdien, hvorfra dataene hentes.
Syntaks:
indlæs (file_object)Pickle et simpelt objekt, der skal gemmes i en fil
Opret en fil med navnet pickle1.py med følgende python-script. I det følgende script kaldes et dataobjekt dataObject erklæres at gemme fem sprognavne ved at gentage for-sløjfen. Dernæst bruges open () -metoden til at tildele en filhåndterer til oprettelse af en binær fil med navnet Sprog. dump () funktionen bruges her til at serialisere dataene fra dataObject og opbevar det i Sprog fil. Hvis serialiseringen udføres korrekt, udskrives en meddelelse, "Data serialiseres".
# Importer pickle-moduletimport pickle
# Erklær objektet til at gemme data
dataObject = []
# Iterer for-sløjfen 5 gange, og tag sprognavne
for n i området (5):
raw = input ('Indtast et sprognavn:')
dataObject.tilføje (rå)
# Åbn en fil til skrivning af data
file_handler = åben ('sprog', 'wb')
# Dump dataene fra objektet i filen
pickle.dump (dataObject, file_handler)
# luk filhåndtereren for at frigøre ressourcerne
filhåndterer.tæt()
# Udskriv besked
print ('Data er serieliseret')
Produktion:
Efter kørsel af scriptet tager det fem sprognavne som input.
Fjern markering af data fra en fil
unpickling af data er det modsatte af pickling data. Opret en fil med navnet pickle2.py med følgende python-script. Her, åben() metoden bruges til at åbne den navngivne binære fil Sprog, oprettet i det foregående eksempel. belastning() funktion bruges til at fjerne markeringen af dataene fra filen og gemme dem i variablen dataObject. Næste, til loop bruges iterere data fra dataObject og udskrive i terminalen.
# Importer pickle-moduletimport pickle
# Åbn en filhåndterer til læsning af en fil, hvorfra dataene indlæses
file_handler = åben ('sprog', 'rb')
# Indlæs dataene fra filen efter deserialisering
dataObject = pickle.indlæs (filhåndterer)
# Luk filhåndtereren
filhåndterer.tæt()
# Udskriv besked
print ('Data efter deserialisering')
# Iterer sløjfen for at udskrive dataene efter deserialisering
for val in dataObject:
print ('Dataværdien:', val)
Produktion:
Følgende output vises efter kørsel af scriptet.
Pickle et klasseobjekt til en fil
Hvordan et klasseobjekt kan pickles vises i det følgende eksempel. Opret en fil med navnet pickle3.py med følgende script. Her, Medarbejder klasse erklæres for at tildele en medarbejder tre dataværdier. Dernæst et filhåndteringsobjekt med navnet fileHandler er oprettet for at åbne en fil til skrivning. Efter initialisering af klasseobjektet serieres data ved hjælp af dump () funktion og gemmes i den navngivne fil medarbejderdata. Hvis filen oprettes korrekt, så meddelelsen, "Data serieliseres" udskrives.
# Importer pickle-modulimport pickle
# Erklær medarbejderklassen for at gemme værdien
klasse medarbejder:
def __init __ (selv, navn, e-mail, post):
selv.navn = navn
selv.e-mail = e-mail
selv.post = post
# Opret medarbejderobjekt
empObject = Medarbejder ('Farheen', '[email protected]', 'Manager')
# Åbn fil til lagerdata
fileHandler = åben ('medarbejderdata', 'wb')
# Gem dataene i filen
pickle.dump (empObject, fileHandler)
# Luk filen
fileHandler.tæt()
# Udskriv besked
print ('Data er serieliseret')
Produktion:
Følgende output vises efter kørsel af scriptet.
Fjern markering af data til et klasseobjekt
En klasse med de nødvendige egenskaber og metoder skal erklære for at hente data fra en fil til et klasseobjekt. Opret en fil med navnet pickle4.py med følgende kode. Medarbejder klasse er defineret her for at hente dataene. fileObject variabel bruges til at åbne filen, medarbejderdata til læsning. Næste, belastning() funktion bruges til at gemme dataene i klasseobjektet efter deserialisering. Skærm() funktion af Medarbejder klasse kaldes til at udskrive dataværdierne for klasseobjektet.
# Importer pickle-modulimport pickle
# Erklær medarbejderklasse til at læse og udskrive data fra en fil
klasse medarbejder:
def __init __ (selv, navn, e-mail, post):
selv.navn = navn
selv.e-mail = e-mail
selv.post = post
def display (selv):
print ('Medarbejderoplysninger:')
print ('Navn:', selv.navn)
print ('E-mail:', selv.e-mail)
print ('Post:', selv.stolpe)
# Åbn filen til læsning
fileObject = åben ('medarbejderdata', 'rb')
# Fjern markeringen af dataene
medarbejder = pickle.load (fileObject)
# Luk fil
fileObject.tæt()
#print dataframmen
medarbejder.Skærm()
Produktion:
Følgende output vises efter kørsel af scriptet.
Konklusion
Pickle-modul er et nyttigt træk ved python til dataserialisering og deserialisering. Efter at have gennemført eksemplerne vist i denne vejledning, vil dataoverførslen fra et python-script til et andet python-script være lettere for alle.