Pickle ominaisuudet:
- Se on suunniteltu pääasiassa käytettäväksi Python-komentosarjassa.
- Sitä käytetään python-objektien tallentamiseen prosessien välillä.
- Se pitää kirjaa kaikista sarjoitetuista objekteista, ja aiemmin sarjoitettu objekti ei enää sarjoi uudelleen.
- Se voi tallentaa ja palauttaa luokan ilmentymän läpinäkyvästi.
- Sitä ei ole turvallista käyttää. Joten ei ole parempi poistaa tietoja tuntemattomasta lähteestä.
dump () sarjoitusta varten:
dump () -funktiota käytetään objektidatan muuntamiseen merkkivirraksi ennen tiedostoon tallentamista. Tämä toiminto voi sisältää kolme argumenttia. Kaksi ensimmäistä argumenttia ovat pakollisia ja viimeinen argumentti on valinnainen. Ensimmäinen argumentti vie tieto-objektin, joka on sarjoitettava. Toinen argumentti vie tiedoston käsittelijäobjektin, johon pckled-tiedot tallennetaan. Viimeinen argumentti ottaa protokollan nimen.
Syntaksi:
dump (data_objekti, tiedosto_objekti, [protokolla])kuormitus () deserialisaatioon:
load () -funktiota käytetään tiedostomuodon muuntamiseen tiedostosta Python-objektiksi. Tämä toiminto sisältää vain yhden argumentin ja tiedoston tiedostokäsittelyobjekti kulkee argumenttiarvona, josta tiedot haetaan.
Syntaksi:
lataa (tiedosto_objekti)Pickle yksinkertainen objekti tallentaa tiedostoon
Luo tiedosto nimeltä suolakurkku 1.py seuraavalla python-komentosarjalla. Seuraavassa komentosarjassa dataobjekti nimeltä dataObject ilmoitetaan tallentavan viisi kielenimeä iteroimalla for -silmukka. Seuraavaksi open () -menetelmää käytetään tiedostokäsittelijän luomiseen binaaritiedostolle nimeltä Kieli (kielet. kaataa () funktiota käytetään tässä sarjaliitäntään dataObject ja säilytä se Kieli (kielet tiedosto. Jos sarjallisuus tehdään oikein, viesti "Data on sarjoitettu" tulostetaan.
# Tuo suolakurkkumoduulituoda suolakurkkua
# Ilmoita objekti tietojen tallentamiseksi
dataObject = []
# Toista for -silmukka viisi kertaa ja ota kielenimet
n: lle alueella (5):
raw = input ('Anna kielen nimi:')
dataObject.liitä (raaka)
# Avaa tiedosto tietojen kirjoittamista varten
file_handler = avoin ('kielet', 'wb')
# Tyhjennä objektin tiedot tiedostoon
suolakurkku.dump (dataObject, file_handler)
# sulje tiedostokäsittelijä vapauttaaksesi resurssit
file_handler.kiinni()
# Tulosta viesti
tulosta ('Data on sarjoitettu')
Tuotos:
Komentosarjan suorittamisen jälkeen se käyttää viittä kielenimeä syötteenä.
Poista tietojen poisto tiedostosta
tietojen poiminta on päinvastoin kuin peittaustiedot. Luo tiedosto nimeltä suolakurkku2.py seuraavalla python-komentosarjalla. Tässä, avata() menetelmää käytetään avaamaan nimetty binääritiedosto Kieli (kielet, luotu edellisessä esimerkissä. ladata() funktiota käytetään tietojen poimimiseen tiedostosta ja niiden tallentamiseen muuttujaan dataObject. Seuraava, varten silmukkaa käytetään iteroimaan tiedot dataObject ja tulosta päätelaitteeseen.
# Tuo suolakurkkumoduulituoda suolakurkkua
# Avaa tiedostojen käsittelijä, jos haluat lukea tiedostoa, josta tiedot ladataan
file_handler = avoin ('kielet', 'rb')
# Lataa tiedot tiedostosta deserialisoinnin jälkeen
dataObject = suolakurkkua.lataa (file_handler)
# Sulje tiedostojen käsittelijä
file_handler.kiinni()
# Tulosta viesti
tulosta ('Data deserialisoinnin jälkeen' ')
# Toista silmukka tulostamaan tiedot deserialisoinnin jälkeen
for val in dataObject:
tulosta ('Data-arvo:', val)
Tuotos:
Seuraava tulos tulee näkyviin komentosarjan suorittamisen jälkeen.
Pickle luokan objekti tiedostoon
Seuraavassa esimerkissä näytetään, kuinka luokan objekti voidaan peitata. Luo tiedosto nimeltä suolakurkkua 3.py seuraavalla komentosarjalla. Tässä, Työntekijä luokan ilmoitetaan määrittävän kolme työntekijän data-arvoa. Seuraavaksi tiedostokäsittelyobjekti nimeltä fileHandler luodaan avaamaan tiedosto kirjoitettavaksi. Kun luokkaobjekti on alustettu, tiedot sarjoitetaan käyttämällä kaataa () ja tallennettu nimettyyn tiedostoon työntekijän tiedot. Jos tiedosto luodaan oikein, viesti, "Tiedot on sarjoitettu" tulostaa.
# Tuo suolakurkkumoduulituoda suolakurkkua
# Ilmoita työntekijäluokka tallentamaan arvo
luokan työntekijä:
def __init __ (itse, nimi, sähköposti, viesti):
itse.nimi = nimi
itse.sähköposti = sähköposti
itse.post = viesti
#Luo työntekijäobjekti
empObject = Työntekijä ('Farheen', '[sähköposti suojattu]', 'Johtaja')
# Avaa tiedosto tallentaa tietoja
fileHandler = avoin ('työntekijän tiedot', 'wb')
# Tallenna tiedot tiedostoon
suolakurkku.dump (empObject, fileHandler)
# Sulje tiedosto
fileHandler.kiinni()
# Tulosta viesti
tulosta ('Data on sarjoitettu')
Tuotos:
Seuraava tulos tulee näkyviin komentosarjan suorittamisen jälkeen.
Poista tietojen valinta luokan objektille
Luokka, jolla on tarvittavat ominaisuudet ja menetelmät, edellyttää ilmoitusta tietojen noutamiseksi tiedostosta luokan objektiin. Luo tiedosto nimeltä suolakurkku 4.py seuraavalla koodilla. Työntekijä luokka määritetään tässä tietojen noutamiseksi. fileObject muuttujaa käytetään tiedoston avaamiseen, työntekijän tiedot lukemista varten. Seuraava, ladata() funktiota käytetään tietojen tallentamiseen luokkaobjektiin deserialisoinnin jälkeen. näyttö() toiminto Työntekijä class kutsutaan tulostamaan luokkaobjektin data-arvot.
# Tuo suolakurkkumoduulituoda suolakurkkua
# Ilmoita työntekijäluokka lukemaan ja tulostamaan tietoja tiedostosta
luokan työntekijä:
def __init __ (itse, nimi, sähköposti, viesti):
itse.nimi = nimi
itse.sähköposti = sähköposti
itse.post = viesti
def-näyttö (itse):
tulosta ('Työntekijän tiedot:')
tulosta ('Nimi:', itse.nimi)
tulosta ('Sähköposti:', itse.sähköposti)
tulosta ('Post:', itse.lähettää)
# Avaa tiedosto lukemista varten
fileObject = avoin ('työntekijän tiedot', 'rb')
# Poista tiedot
työntekijä = suolakurkkua.lataa (fileObject)
# Sulje tiedosto
fileObject.kiinni()
# tulosta datakehys
työntekijä.näyttö()
Tuotos:
Seuraava tulos tulee näkyviin komentosarjan suorittamisen jälkeen.
Johtopäätös
Pickle-moduuli on hyödyllinen python-ominaisuus tietojen sarjaan ja deserialisaatioon. Kun olet suorittanut tässä opetusohjelmassa esitetyt esimerkit, tietojen siirtäminen yhdestä python-komentosarjasta toiseen python-komentosarjaan on helpompaa kenellekään.