Shelve е мощен Python модул за устойчивост на обектите. Когато подреждате обект, трябва да зададете ключ, чрез който стойността на обекта е известна. По този начин файлът на рафта се превръща в база данни със съхранени стойности, до която и да е достъп до всяко време.
Примерен код за Shelve в Python
За да заредите обект, първо импортирайте модула и след това задайте стойността на обекта, както следва:
рафт за внос
база данни = shelve.open (име на файл.suffix)
object = Обект ()
база данни ['ключ'] = обект
Ако искате например да запазите база данни със запаси, можете да адаптирате следния код:
рафт за внос
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
Вече е отворен „stock values.db“, не е нужно да го отваряте отново. По-скоро можете да отворите няколко бази данни наведнъж, да пишете на всяка по желание и да напускате
Питон за да ги затворите, когато програмата приключи. Можете например да запазите отделна база данни с имена за всеки символ, като добавите следното към предходния код:## при условие, че рафтът вече е импортиран
stocknames_db = shelve.open ('stocknames.db')
objectname_ibm = Names.ibm ()
stocknames_db ['ibm'] = име на обект_ibm
objectname_vmw = Names.vmw ()
stocknames_db ['vmw'] = име на обект_vmw
objectname_db = Names.db ()
stocknames_db ['db'] = име на обект_db
Обърнете внимание, че всяка промяна в името или суфикса на файла на базата данни представлява различен файл и следователно различна база данни.
Резултатът е втори файл с база данни, съдържащ дадените стойности. За разлика от повечето файлове, написани в самостоятелно оформени формати, стеланите бази данни са Запазени в двоична форма.
След като данните бъдат записани във файла, те могат да бъдат извикани по всяко време. Ако искате да възстановите данните в по-късна сесия, отново отваряте файла. Ако е една и съща сесия, просто припомнете стойността; уволнявам файлове на база данни се отварят в режим на четене и запис. Следното е основният синтаксис за постигане на това:
рафт за внос
база данни = shelve.open (име на файл.suffix)
object = база данни ['ключ']
Така че извадка от предходния пример ще гласи:
рафт за внос
stockname_file = shelve.open ('stocknames.db')
stockname_ibm = stockname_file ['ibm']
stockname_db = stockname_file ['db']
Съображения с рафта
Важно е да се отбележи, че базата данни остава отворена, докато не я затворите (или докато програмата се прекрати). Ето защо, ако пишете програма от всякакъв размер, след работа с нея искате да затворите базата данни. В противен случай цялата база данни (не само стойността, която искате) седи в паметта и консумира изчислителни ресурси.
За да затворите файл с рафтове, използвайте следния синтаксис:
database.close ()
Ако всички примери за кодове по-горе бяха включени в една програма, в този момент щяхме да имаме два отворени файла с база данни и да изразходват памет. Така че, след като прочетете имената на запасите в предишния пример, можете след това да затворите всяка база данни, както следва:
stockvalues_db.close ()
stocknames_db.close ()
stockname_file.close ()