Pickle, standaard onderdeel van de Python-bibliotheek, is een belangrijke module wanneer u persistentie tussen gebruikerssessies nodig hebt. Als module zorgt pickle voor het opslaan van Python-objecten tussen processen.
Of u nu programmeert voor een database, game, forum of een andere toepassing die informatie tussen sessies moet opslaan, augurk is handig voor het opslaan van ID's en instellingen. De augurkmodule kan dingen opslaan zoals gegevenstypen zoals Booleans, tekenreeksen en byte-arrays, lijsten, woordenboeken, functies en meer.
Notitie: Het concept beitsen wordt ook wel serialisatie, marshaling en flattening genoemd. Het punt is echter altijd hetzelfde: een object opslaan in een bestand om later te worden opgehaald. Met beitsen wordt dit bereikt door het object te schrijven als een lange stroom bytes.
Om een object naar een bestand te schrijven, gebruikt u een code in de volgende syntaxis:
augurk importeren
object = Object ()
filehandler = open (bestandsnaam, 'w')
pickle.dump (object, filehandler)
Dit is hoe een voorbeeld uit de echte wereld eruit ziet:
augurk importeren
wiskunde importeren
object_pi = math.pi
file_pi = open ('bestandsnaam_pi.obj', 'w')
pickle.dump (object_pi, file_pi)
Dit fragment schrijft de inhoud van object_pi naar het bestand handler file_pi, die op zijn beurt is gebonden aan het bestand filename_pi.obj in de directory van uitvoering.
Om de waarde van het object in het geheugen te herstellen, laadt u het object uit het bestand. Ervan uitgaande dat augurk nog niet is geïmporteerd voor gebruik, begint u met het importeren:
augurk importeren
filehandler = open (bestandsnaam, 'r')
object = pickle.load (filehandler)
De volgende code herstelt de waarde van pi:
augurk importeren
file_pi2 = open ('bestandsnaam_pi.obj', 'r')
object_pi2 = pickle.load (file_pi2)
Het object is dan weer klaar voor gebruik, dit keer als object_pi2. Je kunt natuurlijk de originele namen hergebruiken, als je dat liever hebt. Dit voorbeeld gebruikt duidelijke namen voor de duidelijkheid.
Houd deze dingen in gedachten wanneer u de augurkmodule gebruikt:
Tip: Ontdek ook hoe u shelve kunt gebruiken om objecten in Python op te slaan voor een andere methode om de continuïteit van objecten te handhaven.