Upotreba police za spremanje objekata na Pythonu

Shelve je moćan Python modul za postojanost objekta. Kad štitite predmet, morate dodijeliti ključ po kojem je vrijednost predmeta poznata. Na taj način datoteka s policom postaje baza podataka pohranjenih vrijednosti, kojoj se može pristupiti u bilo kojem trenutku.

Primjer kod za policu u Pythonu

Da biste uklonili objekt, prvo uvežite modul, a zatim dodijelite vrijednost objekta na sljedeći način:

 uvozna polica 
database = shelve.open (naziv datoteke.suffix)
objekt = objekt ()
baza podataka ['ključ'] = objekt

Na primjer, ako želite zadržati bazu podataka o zalihama, možete prilagoditi sljedeći kod:

 uvozna polica 
stockvalues_db = shelve.open ('stockvalues.db')
object_ibm = Vrijednosti.ibm ()
stockvalues_db ['ibm'] = objekt_ibm
object_vmw = Vrijednosti.vmw ()
stockvalues_db ['vmw'] = objekt_vmw
object_db = Vrijednosti.db ()
stockvalues_db ['db'] = objekt_db

"Vrijednosti dionica.db" već su otvorene, ne morate je ponovo otvarati. Umjesto toga, možete istovremeno otvoriti više baza podataka, pisati svakoj po volji i napustiti

instagram viewer
Piton kako biste ih zatvorili kad program prestane. Na primjer, možete zadržati zasebnu bazu podataka s imenima za svaki simbol, dodajući sljedeće na prethodni kôd:

 ## pod pretpostavkom da je polica već uvezena 
stocknames_db = shelve.open ('stocknames.db')
objectname_ibm = Names.ibm ()
stocknames_db ['ibm'] = ime objekta_ibm
objectname_vmw = Names.vmw ()
stocknames_db ['vmw'] = ime objekta_vmw
objectname_db = Names.db ()
stocknames_db ['db'] = ime objekta_db

Imajte na umu da svaka promjena imena ili sufiksa datoteke baze podataka čini drugačiju datoteku i, prema tome, drugu bazu podataka.

Rezultat je druga datoteka baze podataka koja sadrži zadane vrijednosti. Za razliku od većine datoteka napisanih u samostalno oblikovanim formatima, spremljene su baze podataka Spremljeni u binarnom obliku.

Nakon što se podaci upišu u datoteku, moguće ih je opozvati u bilo kojem trenutku. Ako želite vratiti podatke u kasnijoj sesiji, ponovno otvorite datoteku. Ako je to ista sesija, jednostavno se prisjetite vrijednosti; rashodovati datoteke baze podataka otvaraju se u načinu čitanja i pisanja. Ovo je osnovna sintaksa za postizanje ovoga:

 uvozna polica 
database = shelve.open (naziv datoteke.suffix)
objekt = baza podataka ['ključ']

Dakle, uzorak iz prethodnog primjera glasi:

 uvozna polica 
stockname_file = shelve.open ('stocknames.db')
stockname_ibm = stockname_file ['ibm']
stockname_db = stockname_file ['db']

Razmatranja s policom

Važno je napomenuti da baza podataka ostaje otvorena dok je ne zatvorite (ili dok se program ne zaustavi). Stoga, ako pišete program bilo koje veličine, nakon rada s njim želite zatvoriti bazu podataka. Inače, čitava baza podataka (ne samo vrijednost koju želite) sjedi u memoriji i troši računski resursi.

Da biste zatvorili datoteku s polica, koristite sljedeću sintaksu:

 database.close () 

Kada bi se svi gornji primjeri koda uklopili u jedan program, u tom bi trenutku bile otvorene dvije datoteke baze podataka koje bi zauzele memoriju. Nakon što ste pročitali imena dionica u prethodnom primjeru, svaku bazu podataka mogli biste zatvoriti zauzvrat, kako slijedi:

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

instagram story viewer