Brug af Shelve til at gemme objekter i Python

click fraud protection

Shelve er et kraftfuldt Python-modul til objektets persistens. Når du skrinlægger et objekt, skal du tildele en nøgle, som objektværdien er kendt med. På denne måde bliver hyldefilen til en database med gemte værdier, hvoraf enhver kan fås adgang til når som helst.

Prøvekode til Shelve i Python

For at skrinlægge et objekt skal du først importere modulet og derefter tildele objektværdien som følger:

 import hylde 
database = shelve.open (filename.suffix)
objekt = objekt ()
database ['key'] = objekt

Hvis du f.eks. Vil opbevare en database med lagre, kan du tilpasse følgende kode:

 import hylde 
stockvalues_db = shelve.open ('stockvalues.db')
object_ibm = Values.ibm ()
stockvalues_db ['ibm'] = object_ibm
object_vmw = Values.vmw ()
stockvalues_db ['vmw'] = object_vmw
object_db = Values.db ()
stockvalues_db ['db'] = object_db

En "lagerværdier.db" er allerede åbnet, du behøver ikke at åbne den igen. Snarere kan du åbne flere databaser ad gangen, skrive til hver efter ønske og forlade Python for at lukke dem, når programmet afsluttes. Du kan for eksempel opbevare en separat database med navne for hvert symbol og tilføje følgende til den foregående kode:

instagram viewer

 ## under forudsætning af, at hylden allerede er importeret 
stocknames_db = shelve.open ('stocknames.db')
objectname_ibm = Navne.ibm ()
stocknames_db ['ibm'] = objektnavn_ibm
objectname_vmw = Navne.vmw ()
stocknames_db ['vmw'] = objektnavn_vmw
objectname_db = Navne.db ()
stocknames_db ['db'] = objektnavn_db

Bemærk, at enhver ændring i navnet eller suffikset til databasefilen udgør en anden fil og derfor en anden database.

Resultatet er en anden databasefil, der indeholder de givne værdier. I modsætning til de fleste filer, der er skrevet i selvudformede formater, er hyldede databaser Gemte i binær form.

Når dataene er skrevet til filen, kan de huskes når som helst. Hvis du vil gendanne dataene i en senere session, åbner du filen igen. Hvis det er den samme session, skal du blot huske værdien; skrinlægge databasefiler åbnes i læse-skrivetilstand. Følgende er den grundlæggende syntaks for at opnå dette:

 import hylde 
database = shelve.open (filename.suffix)
object = database ['nøgle']

Så en prøve fra det foregående eksempel kunne læse:

 import hylde 
stockname_file = shelve.open ('stocknames.db')
stockname_ibm = stockname_file ['ibm']
stockname_db = stockname_file ['db']

Overvejelser med Shelve

Det er vigtigt at bemærke, at databasen forbliver åben, indtil du lukker den (eller indtil programmet afsluttes). Derfor, hvis du skriver et program af en hvilken som helst størrelse, vil du lukke databasen efter at have arbejdet med den. Ellers sidder hele databasen (ikke kun den ønskede værdi) i hukommelsen og forbruger computereessourcer.

Brug følgende syntaks for at lukke en hyldefil:

 database.close () 

Hvis alle kodeeksemplerne ovenfor var inkorporeret i et program, ville vi have to databasefiler åben og forbrugende hukommelse på dette tidspunkt. Så efter at have læst aktienavnene i det forrige eksempel, kan du derefter lukke hver database igen:

 stockvalues_db.close () 
stocknames_db.close ()
stockname_file.close ()

instagram story viewer