Suolakurkku, joka on oletuksena osa Python-kirjastoa, on tärkeä moduuli aina, kun tarvitset pysyvyyttä käyttäjän istuntojen välillä. Suolakurkku tarjoaa moduulina Python-objektien tallentamisen prosessien välillä.
Ohjelmoitko ohjelmaa tietokanta, peli, foorumi tai jokin muu sovellus, jonka on tallennettava tietoja istuntojen välillä, suolakurkku on hyödyllinen tunnisteiden ja asetusten tallentamiseen. Suolakurkkimoduuli voi tallentaa muun muassa tietotyyppejä, kuten booleanit, merkkijonot ja tavumallit, luettelot, sanakirjat, toiminnot ja paljon muuta.
Huomautus: Peittauksen käsite tunnetaan myös sarjoittamisena, vaahdottamisena ja litistymisenä. Kohta on kuitenkin aina sama - objektin tallentaminen tiedostoon myöhempää hakua varten. Peittaus suorittaa tämän kirjoittamalla objektin yhtenä pitkänä tavuvirrana.
Suolaesimerkki Pythonissa
Voit kirjoittaa objektin tiedostoon käyttämällä koodia seuraavassa syntaksissa:
tuo suolakurkku
esine = esine ()
tiedostonkäsittely = avoin (tiedostonimi, 'w')
pickle.dump (esine, tiedostokäsittely)
Näin näyttää reaalimaailman esimerkki:
tuo suolakurkku
tuo matematiikka
object_pi = math.pi
file_pi = open ('tiedostonimi_pi.obj', 'w')
pickle.dump (object_pi, file_pi)
Tämä katkelma kirjoittaa object_pi tiedostoon käsittelijä tiedosto_pi, joka puolestaan on sidottu tiedostoon filename_pi.obj toteutushakemistossa.
Palauta objektin arvo muistiin lataamalla objekti tiedostosta. Jos oletetaan, että suolakurkkua ei ole vielä tuotu käytettäväksi, aloita tuomalla se:
tuo suolakurkku
tiedostonkäsittely = avoin (tiedostonimi, 'r')
object = pickle.load (tiedostokäsittely)
Seuraava koodi palauttaa pi arvon:
tuo suolakurkku
file_pi2 = auki ('tiedostonimi_pi.obj', 'r')
object_pi2 = suolakurkku.lataus (tiedosto_pi2)
Esine on sitten jälleen käyttövalmis, tällä kertaa nimellä object_pi2. Voit tietysti käyttää alkuperäisiä nimiä uudelleen, jos haluat. Tässä esimerkissä selvyyden vuoksi käytetään erillisiä nimiä.
Muistettavaa suolakurkkua
Pidä nämä asiat mielessä suolakurkku-moduulia käytettäessä:
- Suolasokeriprotokolla on nimenomaan Python - sen ei voida taata olevan kieliyhteensopiva. Et todennäköisesti voi siirtää tietoja, jotta niistä olisi hyötyä Perl-, PHP-, Java- tai muilla kielillä.
- Pythonin eri versioiden yhteensopivuutta ei myöskään voida taata. ITYhteensopimattomuus on olemassa, koska moduuli ei voi sarjoittaa kaikkia Python-tietorakenteita.
- Oletuksena käytetään suolakurkkuprotokollan uusinta versiota. Se pysyy sellaisena, ellet muuta sitä manuaalisesti.
Kärki: Selvitä myös kuinka hyllyllä voidaan säästää esineitä Pythonissa toiselle menetelmälle objektin jatkuvuuden ylläpitämiseksi.