Plaukts ir spēcīgs Python modulis objekta noturībai. Novietojot plauktu objektam, jums jāpiešķir atslēga, ar kuru tiek zināma objekta vērtība. Tādā veidā plauktu fails kļūst par saglabāto vērtību datu bāzi, kurai jebkurai var piekļūt jebkurā laikā.
Parauga kods plauktam Python
Lai saglabātu objektu, vispirms importējiet moduli un pēc tam objekta vērtību piešķiriet šādi:
importa plaukts
datu bāze = shelve.open (faila nosaukums.suffix)
objekts = objekts ()
datu bāze ['atslēga'] = objekts
Piemēram, ja vēlaties uzturēt krājumu datu bāzi, varat pielāgot šo kodu:
importa plaukts
stockvalues_db = shelve.open ('stockvalues.db')
object_ibm = Values.ibm ()
stockvalues_db ['ibm'] = objekta_ibm
object_vmw = Values.vmw ()
stockvalues_db ['vmw'] = object_vmw
object_db = Vērtības.db ()
stockvalues_db ['db'] = object_db
"Akciju vērtības.db" jau ir atvērts, jums tas vairs nav jāatver. Drīzāk jūs varat vienlaikus atvērt vairākas datu bāzes, rakstīt katrai pēc vēlēšanās un aiziet Python tos aizvērt, kad programma tiek pārtraukta. Jūs, piemēram, varētu turēt atsevišķu datu bāzi ar nosaukumiem katram simbolam, iepriekšējam kodam pievienojot šādus datus:
##, pieņemot, ka plaukts jau ir importēts
stocknames_db = shelve.open ('stocknames.db')
objectname_ibm = Vārdi.ibm ()
stocknames_db ['ibm'] = objekta nosaukums_ibm
objectname_vmw = Vārdi.vmw ()
stocknames_db ['vmw'] = objekta nosaukums_vmw
objectname_db = Vārdi.db ()
stocknames_db ['db'] = objekta nosaukums_db
Ņemiet vērā, ka jebkādas datu bāzes faila nosaukuma vai piedēkļa izmaiņas ir atšķirīgs fails un līdz ar to arī cita datu bāze.
Rezultāts ir otrais datu bāzes fails, kas satur dotās vērtības. Atšķirībā no vairuma failu, kas rakstīti pašizveidotā formātā, plauktās datu bāzes ir saglabāts binārā formā.
Pēc datu ierakstīšanas failā tos var atsaukt jebkurā laikā. Ja vēlaties datus atjaunot vēlākā sesijā, fails tiek atvērts no jauna. Ja tā ir tā pati sesija, vienkārši atcerieties vērtību; plaukts datu bāzes faili tiek atvērti lasīšanas un rakstīšanas režīmā. Šis ir pamata sintakse, lai to sasniegtu:
importa plaukts
datu bāze = shelve.open (faila nosaukums.suffix)
objekts = datu bāze ['atslēga']
Tātad iepriekšējā piemēra paraugs būtu šāds:
importa plaukts
stockname_file = shelve.open ('stocknames.db')
stockname_ibm = stockname_file ['ibm']
stockname_db = stockname_file ['db']
Apsvērumi ar plauktu
Ir svarīgi ņemt vērā, ka datu bāze paliek atvērta, līdz to aizverat (vai līdz programma tiek pārtraukta). Tāpēc, ja jūs rakstāt jebkura lieluma programmu, pēc darba ar datu bāzi vēlaties aizvērt. Pretējā gadījumā visa datu bāze (ne tikai vēlamā vērtība) atrodas atmiņā un tiek patērēta skaitļošanas resursi.
Lai aizvērtu plaukta failu, izmantojiet šo sintakse:
database.close ()
Ja visi iepriekš minētie koda piemēri tiktu iestrādāti vienā programmā, mums šajā brīdī būtu atvērti divi datu bāzes faili, kas patērē atmiņu. Tātad, pēc tam, kad esat izlasījis krājumu nosaukumus iepriekšējā piemērā, jūs pēc tam varētu aizvērt katru datu bāzi šādi:
stockvalues_db.close ()
stocknames_db.close ()
stockname_file.close ()