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
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 ()