shelve

Модуль shelve преобразует объект в последовательность байтов, которая может быть записана в файл, а потом прочитана из файла, сохраняет объекты в базе данных, своей структурой напоминающей словарь.

>>> import shelve
>>> db = shelve.open(“filename”)
>>> db[‘key’] = obj
>>> obj = db[‘key’]
>>> db.close()
shelve.open(filename[, flag='c'][, protokol=None][, writeback=False])
Параметры:
  • filename – файловый объект для хранения
  • protokol – протокол сохранения
  • flag (str) – режим открытия файла (r - чтение, w - чтение и запись, с - чтение и запись (+ создание), n - чтение и запись (+ создание или перезапись))

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

shelve.clear()

очищает БД

shelve.close()

закрывает БД

shelve.get(key[, default=None])

возвращает значение по ключу, если ключа нет, дефолтное значение

shelve.items()

возвращает список кортежей, ключ и значение

Изменено в версии 3.x: возвращает объект итератор

shelve.keys()

возвращает список ключей

Изменено в версии 3.x: возвращает объект итератор

shelve.pop(key[, default])

Возвращает значение по ключу, удалив запись из БД.

  • Если ключа нет, возвращается указанное дефолтное значение.
  • Если ключа нет и не указано дефолтное значение, возбуждается исключение KeyError
shelve.popitem()

Возвращает случайную пару (ключ, значение) из БД, удаляя его из БД

  • Если БД пустая, возбуждается исключение KeyError
shelve.setdefault(<Ключ>[, <Значение по умолчанию>=None])

Возвращает значение по ключу, если такого ключа нет, то возвращается дефолтное значение, при этом добавив новую запись.

shelve.update(key=value)
shelve.update(dict)
shelve.update([(key, value)])
shelve.update(((key, value), ))

Обновляет БД.

shelve.values()

возвращает список со значениями

Изменено в версии 3.x: возвращает объект итератор