Pácolás jellemzői:
- Elsősorban Python szkriptekhez készült.
- A python objektumok mentésére szolgál a folyamatok között.
- Nyomon követi az összes sorosított objektumot, és az előzőleg sorosított objektum nem sorozható újra.
- Átláthatóan mentheti és visszaállíthatja az osztálypéldányt.
- Használata nem biztonságos. Tehát nem jobb ismeretlen forrásból származó adatokat felszedni.
dump () a szerializáláshoz:
A dump () függvény az objektumadatok karakterárammá konvertálására szolgál, mielőtt fájlba menne. Ez a függvény három érvet tartalmazhat. Az első két érv kötelező, az utolsó pedig nem kötelező. Az első argumentum egy adatobjektumot igényel, amelyet sorba kell állítani. A második argumentum az adott fájl fájlkezelő objektumát veszi fel, ahol a csomagolt adatokat tárolja. Az utolsó argumentum a protokoll nevét veszi fel.
Szintaxis:
lerak(data_object,file_object, [jegyzőkönyv])
load () deserializáláshoz:
A load () függvénnyel a fájlból származó karakterfolyam -adatokat Python -objektummá alakíthatjuk át. Ez a függvény csak egy argumentumot tartalmaz, és a fájl fájlkezelő objektuma a argumentum értékeként kerül át, ahonnan az adatok lekérésre kerülnek.
Szintaxis:
Betöltés(file_object)
Válasszon ki egy egyszerű objektumot a fájlban való tároláshoz
Hozzon létre egy nevű fájlt savanyúság1 a következő python szkripttel. A következő szkriptben egy adatobjektum dataObject deklarált, hogy a for ciklus iterálásával öt nyelvnevet tárol. Ezután az open () metódust használjuk fájlkezelő hozzárendeléséhez egy bináris fájl nevű létrehozásához nyelveken. lerak() funkciót itt használjuk az adatok sorosítására dataObject és tárolja a nyelveken fájlt. Ha a szerializálás megfelelően történik, akkor egy üzenet jelenik meg.
# Importálja a pácoló modultimport savanyú uborka
# Adja meg az objektumot az adatok tárolásához
dataObject= []
# Ismételje meg a for ciklust ötször, és vegye fel a nyelvek nevét
számáranban ben hatótávolság(5):
nyers= bemenet('Írja be a nyelv nevét:')
dataObject.mellékel(nyers)
# Nyisson meg egy fájlt az adatok írásához
file_handler= nyisd ki('nyelvek', 'wb')
# Dobja ki az objektum adatait a fájlba
savanyú uborka.lerak(dataObject,file_handler)
# Az erőforrások felszabadításához zárja be a fájlkezelőt
file_handler.Bezárás()
# Nyomtassa ki az üzenetet
nyomtatás('Az adatok sorosítva')
Kimenet:
A szkript futtatása után öt nyelvnév kerül bevitelre.
Válassza ki az adatokat egy fájlból
az adatok felszedése ellentétes a pácolt adatokkal. Hozzon létre egy nevű fájlt savanyúság2.py a következő python szkripttel. Itt, nyisd ki() módszer a bináris fájl nevű fájl megnyitásához használható nyelveken , az előző példában készült. Betöltés() függvény az adatok fájlból való eltávolítására és a változóban való tárolására szolgál dataObject . Következő, számára ciklus segítségével iteráljuk az adatokat a dataObject és nyomtatni a terminálon.
# Importálja a pácoló modultimport savanyú uborka
# Nyisson meg egy fájlkezelőt egy fájl olvasásához, ahonnan az adatok betöltődnek
file_handler= nyisd ki('nyelvek', 'rb')
# Töltse be az adatokat a fájlból a deserializálás után
dataObject= savanyú uborka.Betöltés(file_handler)
# Zárja be a fájlkezelőt
file_handler.Bezárás()
# Nyomtassa ki az üzenetet
nyomtatás(„Adatok deserializálás után”)
# Ismételje meg a ciklust az adatok nyomtatásához az deserializálás után
számáraóraban bendataObject:
nyomtatás('Az adat értéke:',óra)
Kimenet:
A szkript futtatása után a következő kimenet jelenik meg.
Válasszon osztály objektumot egy fájlhoz
Az alábbi példában bemutatjuk, hogyan lehet pácolni egy osztályobjektumot. Hozzon létre egy nevű fájlt savanyúság3 a következő forgatókönyvvel. Itt, Munkavállaló osztály deklaráltan három adatértéket rendel hozzá egy alkalmazotthoz. Ezután egy fájlkezelő objektum fileHandler fájl létrehozására jött létre íráshoz. Az osztályobjektum inicializálása után az adatokat a segítségével sorba rendezik lerak() funkciót és a nevű fájlban tárolja alkalmazottData . Ha a fájl megfelelően jön létre, akkor az üzenet Az adatok sorosítva vannak nyomtatni fog.
# Pácoló modul importálásaimport savanyú uborka
# Nyilvánítsa a munkavállalói osztályt az érték tárolásához
osztályMunkavállaló:
def __benne__(maga,név, email,hozzászólás):
maga.név =név
maga.email = email
maga.hozzászólás =hozzászólás
#Alkalmazotti objektum létrehozása
empObject=Munkavállaló('Farheen', '[email protected]', 'Menedzser')
# Nyissa meg a fájlt a tárolási adatokhoz
fileHandler= nyisd ki('alkalmazottData', 'wb')
# Mentse az adatokat a fájlba
savanyú uborka.lerak(empObject,fileHandler)
# Zárja be a fájlt
fileHandler.Bezárás()
# Nyomtassa ki az üzenetet
nyomtatás('Az adatok sorosítva')
Kimenet:
A szkript futtatása után a következő kimenet jelenik meg.
Válassza ki az adatokat egy osztályobjektumból
A szükséges tulajdonságokkal és módszerekkel rendelkező osztálynak deklarálnia kell az adatok fájlból egy osztályobjektumba való lekérését. Hozzon létre egy nevű fájlt savanyúság 4.py a következő kóddal. Munkavállaló osztály van definiálva az adatok lekérésére. fileObject változó a fájl megnyitásához, alkalmazottData az olvasáshoz. Következő, Betöltés() függvény az adatok tárolására szolgál az osztályobjektumban deserializálás után. kijelző() funkciója a Munkavállaló osztályt az osztályobjektum adatértékeinek kinyomtatására hívják.
# Pácoló modul importálásaimport savanyú uborka
# A munkavállalói osztály deklarálása az adatok olvasásához és nyomtatásához egy fájlból
osztályMunkavállaló:
def __benne__(maga,név, email,hozzászólás):
maga.név =név
maga.email = email
maga.hozzászólás =hozzászólás
defkijelző(maga):
nyomtatás('Munkavállalói információk:')
nyomtatás('Név:', maga.név)
nyomtatás('E -mail:', maga.email)
nyomtatás('Bejegyzés:', maga.hozzászólás)
# Nyissa meg a fájlt olvasásra
fileObject= nyisd ki('alkalmazottData', 'rb')
# Válassza le az adatokat
munkavállaló= savanyú uborka.Betöltés(fileObject)
# Zárja be a fájlt
fileObject.Bezárás()
#nyomtassa ki az adatkeretet
munkavállaló.kijelző()
Kimenet:
A szkript futtatása után a következő kimenet jelenik meg.
Következtetés
A Pickle modul a python hasznos tulajdonsága az adatok sorosítására és deserializálására. Az oktatóanyagban bemutatott példák befejezése után az adatátvitel az egyik python szkriptről a másikra bárki számára könnyebb lesz.