Pickle-funktioner:
- Den är huvudsakligen utformad för att användas för Python-skript.
- Den används för att spara pythonobjekten mellan processerna.
- Den håller reda på alla serieobjekt och objektet som serialiseras tidigare kommer inte att serieiseras igen.
- Det kan spara och återställa klassinstansen transparent.
- Det är inte säkert att använda. Så det är inte bättre att avmarkera data från en okänd källa.
dump () för serialisering:
dump () -funktionen används för att konvertera objektdata till en teckenström innan du sparar i en fil. Denna funktion kan ta tre argument. De två första argumenten är obligatoriska och det sista argumentet är valfritt. Det första argumentet tar ett dataobjekt som måste serienummeras. Det andra argumentet tar objektet för filhanteraren för den filen där den pckledata lagras. Det sista argumentet tar protokollnamnet.
Syntax:
dumpa (data_object, file_object, [protocol])load () för deserialisering:
load () -funktionen används för att konvertera teckenströmdata från filen till ett Python-objekt. Den här funktionen innehåller bara ett argument och filhanteringsobjektet för filen passerar som argumentvärdet varifrån data kommer att hämtas.
Syntax:
ladda (file_object)Pickle ett enkelt objekt att lagra i en fil
Skapa en fil med namnet pickle1.py med följande python-skript. I följande skript, ett dataobjekt med namnet dataObject förklaras lagra fem språknamn genom att itera it for-loop. Därefter används metoden open () för att tilldela en filhanterare för att skapa en binär fil med namnet språk. dumpa() funktionen används här för att serieera data från dataObject och förvara den i språk fil. Om serialiseringen kommer att göras ordentligt kommer ett meddelande, "Data serialiseras" att skrivas ut.
# Importera pickle-modulenimportera knipa
# Förklara objektet för att lagra data
dataObject = []
# Iterera for-slingan fem gånger och ta språknamn
för n inom intervallet (5):
raw = input ('Ange ett språknamn:')
dataObject.bifoga (rå)
# Öppna en fil för att skriva data
file_handler = öppen ('språk', 'wb')
# Dumpa objektets data i filen
ättikslag.dump (dataObject, file_handler)
# stäng filhanteraren för att frigöra resurserna
filhanterare.stänga()
# Skriv ut meddelande
skriva ut ('Data serialiseras')
Produktion:
Efter att ha kört skriptet tar det fem språknamn som inmatning.
Avmarkera data från en fil
avmarkering av data är motsatsen till betningsdata. Skapa en fil med namnet pickle2.py med följande python-skript. Här, öppna() metoden används för att öppna den binära filen som heter språk, skapades i föregående exempel. ladda() funktionen används för att avmarkera data från filen och lagra den i variabeln dataObject. Nästa, för loop används itera data från dataObject och skriv ut i terminalen.
# Importera pickle-modulenimportera knipa
# Öppna en filhanterare för att läsa en fil från vilken data laddas
file_handler = öppen ('språk', 'rb')
# Ladda data från filen efter deserialisering
dataObject = pickle.ladda (file_handler)
# Stäng filhanteraren
filhanterare.stänga()
# Skriv ut meddelande
skriva ut ('Data efter deserialisering')
# Iterera slingan för att skriva ut data efter deserialisering
för val in dataObject:
skriv ut ('Datavärdet:', val)
Produktion:
Följande utdata visas efter körning av skriptet.
Pickle ett klassobjekt till en fil
Hur ett klassobjekt kan betas visas i följande exempel. Skapa en fil med namnet pickle3.py med följande skript. Här, Anställd klass förklaras att tilldela tre datavärden för en anställd. Därefter ett filhanteringsobjekt med namnet fileHandler skapas för att öppna en fil för skrivning. Efter att ha initierat klassobjektet serieras data med hjälp av dumpa() funktion och lagras i namnet på filen medarbetardata. Om filen kommer att skapas ordentligt då meddelandet, “Data serialiseras” kommer att skriva ut.
# Importera pickle-modulimportera knipa
# Förklara anställdsklassen för att lagra värdet
klass Anställd:
def __init __ (själv, namn, e-post, post):
själv.namn = namn
själv.e-post = e-post
själv.post = post
# Skapa anställdsobjekt
empObject = Anställd ('Farheen', '[email protected]', 'Manager')
# Öppna filen för lagringsdata
fileHandler = öppen ('employeeData', 'wb')
# Spara data i filen
ättikslag.dumpa (empObject, fileHandler)
# Stäng filen
fileHandler.stänga()
# Skriv ut meddelande
skriva ut ('Data serialiseras')
Produktion:
Följande utdata visas efter körning av skriptet.
Avmarkera data till ett klassobjekt
En klass med nödvändiga egenskaper och metoder kräver att deklarera för att hämta data från en fil till ett klassobjekt. Skapa en fil med namnet pickle4.py med följande kod. Anställd klass definieras här för att hämta data. fileObject variabel används för att öppna filen, medarbetardata för läsning. Nästa, ladda() funktionen används för att lagra data i klassobjektet efter deserialisering. visa() funktion av Anställd klass anropas för att skriva ut datavärdena för klassobjektet.
# Importera pickle-modulimportera knipa
# Förklara medarbetarklass att läsa och skriva ut data från en fil
klass Anställd:
def __init __ (själv, namn, e-post, post):
själv.namn = namn
själv.e-post = e-post
själv.post = post
def-display (själv):
skriv ut ('Anställd information:')
skriva ut ('Namn:', själv.namn)
skriva ut ('E-post:', själv.e-post)
print ('Post:', själv.posta)
# Öppna filen för läsning
fileObject = öppen ('employeeData', 'rb')
# Avmarkera data
anställd = pickle.ladda (fileObject)
# Stäng fil
fileObject.stänga()
# skriv ut dataramen
anställd.visa()
Produktion:
Följande utdata visas efter körning av skriptet.
Slutsats
Pickle-modul är en användbar funktion i python för dataserialisering och deserialisering. Efter att ha slutfört exemplen som visas i den här handledningen blir dataöverföringen från ett pythonscript till ett annat pythonscript lättare för alla.