Slik bruker du pickle til å lagre objekter i Python

click fraud protection

Pickle, som er en del av Python-biblioteket som standard, er en viktig modul når du trenger utholdenhet mellom brukerøkter. Som en modul sørger pickle for lagring av Python-objekter mellom prosesser.

Enten du programmerer for en database, spill, forum eller et annet program som må lagre informasjon mellom økter, er pickle nyttig for å lagre identifikatorer og innstillinger. Pickle-modulen kan lagre ting som datatyper som booleaner, strenger og byte-matriser, lister, ordbøker, funksjoner og mer.

Merk: Konseptet med beising er også kjent som serialisering, marsjering og utflating. Men poenget er alltid det samme - å lagre et objekt i en fil for senere henting. Pickling oppnår dette ved å skrive objektet som en lang bytesstrøm.

Pickle-eksempelskode i Python

For å skrive et objekt til en fil bruker du en kode i følgende syntaks:

importer pickle 
objekt = objekt ()
filehandler = åpen (filnavn, 'w')
pickle.dump (objekt, filhåndterer)

Slik ser et virkelighetseksempel ut:

importer pickle 
import matematikk
object_pi = math.pi
file_pi = open ('filnavn_pi.obj', 'w')
pickle.dump (object_pi, file_pi)
instagram viewer

Dette utdraget skriver innholdet i object_pi til filen behandlerfil_pi, som igjen er bundet til filen filename_pi.obj i katalogen for utførelse.

Last gjenstanden fra filen for å gjenopprette verdien til objektet. Forutsatt at pickle ennå ikke er importert for bruk, kan du starte med å importere den:

importer pickle 
filhåndterer = åpen (filnavn, 'r')
object = pickle.load (filhåndterer)

Følgende kode gjenoppretter verdien til pi:

importer pickle 
file_pi2 = åpen ('filnavn_pi.obj', 'r')
object_pi2 = pickle.load (file_pi2)

Objektet er da klart til bruk igjen, denne gangen som object_pi2. Du kan selvfølgelig gjenbruke de opprinnelige navnene, hvis du foretrekker det. Dette eksemplet bruker tydelige navn for klarhet.

Ting å huske på pickle

Husk disse tingene når du bruker pickle-modulen:

  • Pickle-protokollen er spesifikk for Python - den er ikke garantert å være tverrspråklig kompatibel. Du kan sannsynligvis ikke overføre informasjonen for å gjøre den nyttig på Perl, PHP, Java eller andre språk.
  • Det er heller ingen garanti for kompatibilitet mellom forskjellige versjoner av Python. ITkompatibiliteten eksisterer fordi ikke alle Python-datastrukturer kan serialiseres av modulen.
  • Som standard brukes den siste versjonen av pickle-protokollen. Det forblir slik hvis du ikke endrer det manuelt.

Tips: Finn også ut av det hvordan du bruker hyller for å lagre objekter i Python for en annen metode for å opprettholde objektkontinuitet.

instagram story viewer