Kuinka peitellä esineitä Pythonissa

How Pickle Objects Python



Kaikki tiedot voidaan sarjoittaa ja deserialisoida Pythonissa käyttämällä JSON- ja Pickle -moduulia. Ennen tietojen tallentamista tiedostoon Python -objektit sarjoitetaan suolakurkumoduulilla. Tämän moduulin avulla Python -objektit muunnetaan merkkivirtoiksi. Kun käyttäjä haluaa noutaa tiedoston tiedot toisen python -komentosarjan käyttämistä varten, suolakurkumoduuli poistaa tiedoston tiedot. Tässä opetusohjelmassa kuvataan suolakurkumoduulin ominaisuuksia ja sitä, miten tätä moduulia voidaan käyttää python -komentosarjoissa sarjoittamiseen ja deserialisointiin.

Pickle ominaisuudet:

  • Se on suunniteltu pääasiassa käytettäväksi Python -komentosarjoissa.
  • Sitä käytetään python -objektien tallentamiseen prosessien välillä.
  • Se pitää kirjaa kaikista sarjoitetuista objekteista, ja aikaisemmin sarjoitettu objekti ei sarjoiteta uudelleen.
  • Se voi tallentaa ja palauttaa luokan instanssin läpinäkyvästi.
  • Se ei ole turvallista käyttää. Joten ei ole parempi purkaa tietoja tuntemattomasta lähteestä.

dump () sarjaan:

dump () -toimintoa käytetään objektitietojen muuntamiseen merkkivirtaksi ennen tiedostoon tallentamista. Tämä funktio voi kestää kolme argumenttia. Kaksi ensimmäistä argumenttia ovat pakollisia ja viimeinen argumentti on valinnainen. Ensimmäinen argumentti ottaa tietoobjektin, joka on sarjoitettava. Toinen argumentti vie kyseisen tiedoston tiedostonkäsittelyobjektin, johon pakatut tiedot tallennetaan. Viimeinen argumentti ottaa protokollan nimen.







Syntaksi:



kaatopaikka(data_object,file_object, [protokollaa])

load () deserialisointia varten:

load () -toimintoa käytetään muuntamaan merkkivirtatiedot tiedostosta Python -objektiksi. Tämä toiminto sisältää vain yhden argumentin ja tiedoston tiedostonkäsittelijäobjekti siirtyy argumentin arvoksi, josta tiedot haetaan.



Syntaksi:





ladata(file_object)

Pickle yksinkertainen objekti tallennettavaksi tiedostoon

Luo tiedosto nimeltä suolakurkku1.py seuraavalla python -komentosarjalla. Seuraavassa komentosarjassa dataobjekti nimeltä dataObject julistetaan tallentamaan viisi kielen nimeä iteroimalla for -silmukka. Seuraavaksi open () -menetelmää käytetään tiedostonkäsittelijän nimeämiseen binääritiedoston luomiseksi Kieli (kielet. kaatopaikka () -toimintoa käytetään sarjan tietojen sarjoittamiseen dataObject ja säilytä se Kieli (kielet tiedosto. Jos sarjoitus suoritetaan oikein, viesti 'Data on serialized' tulostetaan.

# Tuo suolakurkumoduuli
tuonti suolakurkku

# Ilmoita objekti tietojen tallentamiseen
dataObject= []

# Toista for -silmukkaa 5 kertaa ja ota kielen nimet
vartennsisään valikoima(5):
raaka= tulo('Kirjoita kielen nimi:')

dataObject.liittää(raaka)

# Avaa tiedosto tietojen kirjoittamista varten
file_handler= avata('Kieli (kielet', 'wb')

# Dump objektin tiedot tiedostoon
suolakurkku.kaatopaikka(dataObject,file_handler)

# Sulje tiedostonkäsittelijä vapauttaaksesi resurssit
file_handler.kiinni()

# Tulosta viesti
Tulosta('Tiedot sarjoitetaan')

Lähtö:



Skriptin suorittamisen jälkeen se syöttää viisi kielen nimeä.

Irrota tiedot tiedostosta

tietojen poistaminen on vastakohta peittaustiedolle. Luo tiedosto nimeltä suolakurkku2.py seuraavalla python -komentosarjalla. Tässä, avata() -menetelmää käytetään nimisen binaaritiedoston avaamiseen Kieli (kielet , luotu edellisessä esimerkissä. ladata() -toimintoa käytetään tietojen poistamiseen tiedostosta ja tallentamiseen muuttujaan dataObject . Seuraava, varten silmukkaa käytetään iteroimaan tiedot dataObject ja tulosta päätelaitteessa.

# Tuo suolakurkumoduuli
tuonti suolakurkku

# Avaa tiedostonkäsittelijä tiedoston lukemista varten, josta tiedot ladataan
file_handler= avata('Kieli (kielet', 'rb')

# Lataa tiedot tiedostosta deserialisoinnin jälkeen
dataObject= suolakurkku.ladata(file_handler)

# Sulje tiedostonkäsittelijä
file_handler.kiinni()

# Tulosta viesti
Tulosta('Tiedot deserialisoinnin jälkeen')

# Toista silmukka tulostaaksesi tiedot deserialisoinnin jälkeen
vartentuntiasisäändataObject:
Tulosta('Datan arvo:',tuntia)

Lähtö:

Seuraava tulos tulee näkyviin komentosarjan suorittamisen jälkeen.

Pickle luokan objekti tiedostoon

Seuraavassa esimerkissä näytetään, kuinka luokan objekti voidaan peittää. Luo tiedosto nimeltä suolakurkku3.py seuraavan käsikirjoituksen kanssa. Tässä, Työntekijä luokka ilmoittaa antavan työntekijälle kolme data -arvoa. Seuraavaksi tiedostonkäsittelyobjekti nimeltä fileHandler on luotu avaamaan tiedosto kirjoittamista varten. Luokkaobjektin alustamisen jälkeen tiedot sarjoitetaan käyttämällä kaatopaikka () toiminto ja tallennetaan nimettyyn tiedostoon työntekijäTiedot . Jos tiedosto luodaan oikein, viesti Tiedot sarjoitetaan tulostaa.

# Tuo suolakurkumoduuli
tuonti suolakurkku

# Ilmoita työntekijäluokka arvon tallentamiseksi
luokkaTyöntekijä:
def __sen sisällä__(itse,nimi, sähköposti,lähettää):
itse.nimi =nimi
itse.sähköposti = sähköposti
itse.lähettää =lähettää

#Luo työntekijäobjekti
empObject=Työntekijä('Farheen', '[email protected]', 'Johtaja')

# Avaa tiedosto tallennustiedoille
fileHandler= avata('työntekijäTiedot', 'wb')

# Tallenna tiedot tiedostoon
suolakurkku.kaatopaikka(empObject,fileHandler)

# Sulje tiedosto
fileHandler.kiinni()

# Tulosta viesti
Tulosta('Tiedot sarjoitetaan')

Lähtö:

Seuraava tulos tulee näkyviin komentosarjan suorittamisen jälkeen.

Irrota tiedot luokan objektiin

Luokan, jolla on tarvittavat ominaisuudet ja menetelmät, on ilmoitettava tietojen noutamiseksi tiedostosta luokan objektiin. Luo tiedosto nimeltä suolakurkku4.py seuraavalla koodilla. Työntekijä luokka on määritelty tässä tietojen hakemiseksi. fileObject muuttujaa käytetään tiedoston avaamiseen, työntekijäTiedot lukemista varten. Seuraava, ladata() -toimintoa käytetään tietojen tallentamiseen luokkaobjektiin deserialisoinnin jälkeen. näyttö() toiminto Työntekijä luokka kutsutaan tulostamaan luokka -objektin data -arvot.

# Tuo suolakurkumoduuli
tuonti suolakurkku

# Ilmoita työntekijäluokka lukemaan ja tulostamaan tietoja tiedostosta
luokkaTyöntekijä:
def __sen sisällä__(itse,nimi, sähköposti,lähettää):
itse.nimi =nimi
itse.sähköposti = sähköposti
itse.lähettää =lähettää

defnäyttö(itse):
Tulosta('Työntekijä Informaatio:')
Tulosta('Nimi:', itse.nimi)
Tulosta('Sähköposti:', itse.sähköposti)
Tulosta('Viesti:', itse.lähettää)

# Avaa tiedosto lukemista varten
fileObject= avata('työntekijäTiedot', 'rb')

# Irrota tiedot
työntekijä= suolakurkku.ladata(fileObject)

# Sulje tiedosto
fileObject.kiinni()

#tulosta tietokehys
työntekijä.näyttö()

Lähtö:

Seuraava tulos tulee näkyviin komentosarjan suorittamisen jälkeen.

Johtopäätös

Pickle -moduuli on pythonin hyödyllinen ominaisuus tietojen sarjoittamiseen ja deserialisointiin. Tässä opetusohjelmassa esitettyjen esimerkkien suorittamisen jälkeen tietojen siirtäminen yhdestä python -skriptistä toiseen python -skriptiin on helpompaa kenelle tahansa.