Marinādes funkcijas:
- Tas galvenokārt ir paredzēts izmantošanai Python skriptā.
- To izmanto pitona objektu saglabāšanai starp procesiem.
- Tas seko visiem sērijveida objektiem, un objekts, kas ir seriālizēts iepriekš, vairs netiks seriālizēts.
- Tas var pārredzami saglabāt un atjaunot klases instanci.
- Tas nav droši lietojams. Tātad nav labāk atlasīt datus no nezināma avota.
dump () serializēšanai:
funkcija dump () tiek izmantota objekta datu pārveidošanai rakstzīmju straumē pirms saglabāšanas failā. Šai funkcijai var būt trīs argumenti. Pirmie divi argumenti ir obligāti, un pēdējais arguments nav obligāts. Pirmajā argumentā tiek izmantots datu objekts, kas jāserializē. Otrais arguments ņem faila apstrādes objektu šajā failā, kurā tiks glabāti pckled dati. Pēdējais arguments ņem protokola nosaukumu.
Sintakse:
dump (datu_objekts, faila objekts, [protokols])slodze () deserializācijai:
funkcija load () tiek izmantota, lai no faila pārveidotu rakstzīmju plūsmas datus par Python objektu. Šajā funkcijā ir tikai viens arguments, un faila apstrādes objekts kā argumenta vērtība pāriet no kurienes tiks iegūti dati.
Sintakse:
ielādēt (file_object)Marinējiet vienkāršu objektu, ko uzglabāt failā
Izveidojiet failu ar nosaukumu marinēti gurķi1.py ar šādu pitona skriptu. Šajā skriptā datu objekts nosaukts dataObject tiek deklarēts, ka tas glabā piecus valodu nosaukumus, atkārtojot for ciklu. Pēc tam metodi Open () izmanto, lai piešķirtu failu apstrādātāju binārā faila ar nosaukumu izveidošanai valodās. izgāzt () Funkcija tiek izmantota šeit, lai sērijveidotu dataObject un uzglabājiet to valodās failu. Ja sērijveidošana tiks veikta pareizi, tiks izdrukāts ziņojums “Dati ir sērijveidoti”.
# Importējiet marinētu gurķu moduliimportēt marinētu gurķi
# Deklarēt objektu datu glabāšanai
dataObject = []
# Atkārtojiet for ciklu 5 reizes un ņemiet valodu nosaukumus
n diapazonā (5):
raw = input ('Ievadiet valodas nosaukumu:')
dataObject.pievienot (neapstrādāts)
# Atveriet failu datu ierakstīšanai
file_handler = open ('valodas', 'wb')
# Izmetiet objekta datus failā
marinēti gurķi.dump (dataObject, file_handler)
# aizveriet failu apstrādātāju, lai atbrīvotu resursus
file_handler.aizvērt ()
# Drukāt ziņojumu
drukāt ('Dati tiek sērijveidoti')
Izeja:
Pēc skripta palaišanas tā ievadīs piecus valodu nosaukumus.
Noņemiet datus no faila
datu atlasīšana ir pretēja kodināšanas datiem. Izveidojiet failu ar nosaukumu marinēti gurķi2.py ar šādu pitona skriptu. Šeit, atvērts () metodi izmanto, lai atvērtu nosaukto bināro failu valodās, izveidots iepriekšējā piemērā. slodze () Funkcija tiek izmantota, lai atlasītu datus no faila un saglabātu tos mainīgajā dataObject. Nākamais, priekš cilpa tiek izmantota, lai atkārtotu datus no dataObject un drukājiet terminālā.
# Importējiet marinētu gurķu moduliimportēt marinētu gurķi
# Atveriet failu apstrādātāju faila lasīšanai no vietas, kur dati tiks ielādēti
file_handler = open ('valodas', 'rb')
# Pēc deserializācijas ielādējiet datus no faila
dataObject = marinēti gurķi.ielādēt (file_handler)
# Aizveriet failu apstrādātāju
file_handler.aizvērt ()
# Drukāt ziņojumu
drukāt (“Dati pēc deserializācijas”)
# Atkārtojiet cilpu, lai pēc deserializācijas izdrukātu datus
par val in dataObject:
print ('Datu vērtība:', val)
Izeja:
Pēc skripta palaišanas parādīsies šāda izeja.
Marinējiet klases objektu failā
Kā klases objektu var marinēt, parādīts nākamajā piemērā. Izveidojiet failu ar nosaukumu marinēti gurķi3.py ar šādu skriptu. Šeit, Darbinieks klase ir deklarēta, lai piešķirtu trīs darbinieka datu vērtības. Pēc tam failu apstrādes objekts ar nosaukumu fileHandler ir izveidots, lai atvērtu failu rakstīšanai. Pēc klases objekta inicializācijas dati tiek sērijveidoti, izmantojot izgāzt () funkcija un saglabāta nosauktajā failā darbinieksDati. Ja fails tiks izveidots pareizi, tad ziņojums, “Dati tiek sērijveidoti” izdrukās.
# Importēt marinētu gurķu moduliimportēt marinētu gurķi
# Paziņojiet darbinieku klasei, lai saglabātu vērtību
klases darbinieks:
def __init __ (pats, vārds, e-pasts, pasts):
pats.nosaukums = nosaukums
pats.e-pasts = e-pasts
pats.post = post
# Izveidot darbinieku objektu
empObject = Darbinieks ('Farheen', '[e-pasts aizsargāts]', 'Pārvaldnieks')
# Atveriet failu veikala datiem
fileHandler = open ('darbinieka dati', 'wb')
# Saglabājiet datus failā
marinēti gurķi.dump (empObject, fileHandler)
# Aizveriet failu
fileHandler.aizvērt ()
# Drukāt ziņojumu
drukāt ('Dati tiek sērijveidoti')
Izeja:
Pēc skripta palaišanas parādīsies šāda izeja.
Noņemt datus no klases objekta
Klasei ar nepieciešamajām īpašībām un metodēm būs jādeklarē, lai datus no faila izgūtu klases objektā. Izveidojiet failu ar nosaukumu marinēti gurķi4.py ar šādu kodu. Darbinieks klase ir definēta šeit, lai izgūtu datus. fileObject mainīgais tiek izmantots faila atvēršanai, darbinieksDati lasīšanai. Nākamais, slodze () funkcija tiek izmantota, lai pēc deserializācijas saglabātu datus klases objektā. displejs () funkcija Darbinieks klase tiek izsaukta, lai izdrukātu klases objekta datu vērtības.
# Importēt marinētu gurķu moduliimportēt marinētu gurķi
# Deklarēt darbinieku klasi datu lasīšanai un drukāšanai
klases darbinieks:
def __init __ (pats, vārds, e-pasts, pasts):
pats.nosaukums = nosaukums
pats.e-pasts = e-pasts
pats.post = post
def displejs (pats):
drukāt ('Informācija par darbiniekiem:')
drukāt ('Nosaukums:', self.nosaukums)
drukāt ('E-pasts:', pats.e-pasts)
drukāt ('Post:', self.pastu)
# Atveriet failu lasīšanai
fileObject = atvērts ('workerData', 'rb')
# Noņemiet datus
darbinieks = marināde.ielādēt (fileObject)
# Aizvērt failu
fileObject.aizvērt ()
#print datu ietvaru
darbinieks.displejs ()
Izeja:
Pēc skripta palaišanas parādīsies šāda izeja.
Secinājums
Marinādes modulis ir noderīga pitona funkcija datu serializācijai un deserializācijai. Pēc šajā apmācībā parādīto piemēru pabeigšanas ikvienam būs vieglāk pārsūtīt datus no viena pitona skripta uz citu pitona skriptu.