Hogyan pácoljunk tárgyakat a Pythonban

How Pickle Objects Python



A JSON és a Pickle modul segítségével bármilyen adatot sorosíthat és deserializálhat a Pythonban. Mielőtt bármilyen adatot tárolna egy fájlban, a Python objektumokat sorosítják a pácoló modul segítségével. Ezzel a modullal a Python objektumok karakterfolyamokká alakulnak át. Ha a felhasználó le szeretné kérni a fájl adatait egy másik python -parancsfájl használatához, akkor a fájl adatait a pácoló modul deserializálja. Ebben az oktatóanyagban ismertetjük a pácoló modul jellemzőit és azt, hogyan lehet ezt a modult használni a python szkriptekben a sorozatosításhoz és a deserializáláshoz.

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ó modult
import 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ó modult
import 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ása
import 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ása
import 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.