Использование полки для сохранения объектов в Python

Shelve - это мощный Python-модуль для сохранения объектов. Когда вы кладете объект на полку, вы должны назначить ключ, по которому будет известно значение объекта. Таким образом, файл полки становится базой данных хранимых значений, к любому из которых можно получить доступ в любое время.

Пример кода для полки в Python

Чтобы положить объект на полку, сначала импортируйте модуль, а затем назначьте значение объекта следующим образом:

 импортная полка 
database = shelve.open (filename.suffix)
object = Object ()
база данных ['key'] = объект

Например, если вы хотите вести базу данных о запасах, вы можете адаптировать следующий код:

 импортная полка 
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

Файл "values ​​values.db" уже открыт, вам не нужно открывать его снова. Скорее, вы можете открывать несколько баз данных одновременно, писать в каждую по желанию и оставлять

instagram viewer
питон закрыть их, когда программа завершается. Вы можете, например, сохранить отдельную базу данных имен для каждого символа, добавив следующее к предыдущему коду:

 ## при условии, что полка уже импортирована 
stocknames_db = shelve.open ('stocknames.db')
objectname_ibm = Names.ibm ()
stocknames_db ['ibm'] = objectname_ibm
objectname_vmw = Names.vmw ()
stocknames_db ['vmw'] = objectname_vmw
objectname_db = Names.db ()
stocknames_db ['db'] = objectname_db

Обратите внимание, что любое изменение имени или суффикса файла базы данных представляет собой другой файл и, следовательно, другую базу данных.

Результатом является второй файл базы данных, содержащий заданные значения. В отличие от большинства файлов, написанных в самостоятельном формате, готовые базы данных Сохраненный в двоичном виде.

После того, как данные записаны в файл, они могут быть вызваны в любое время. Если вы хотите восстановить данные в более позднем сеансе, вы заново открываете файл. Если это тот же сеанс, просто вызовите значение; Shelve файлы базы данных открываются в режиме чтения-записи. Ниже приведен основной синтаксис для достижения этого:

 импортная полка 
database = shelve.open (filename.suffix)
объект = база данных ['ключ']

Таким образом, образец из предыдущего примера будет читать:

 импортная полка 
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 ()

instagram story viewer