Модуль Python Shelve

Из документации Python 3

«Полка» (shelf) — это постоянный объект, похожий на словарь. Отличие от баз данных «dbm» заключается в том, что значения (а не ключи!) в полке могут быть по существу произвольными объектами Python — всем, что может обработать модуль pickle. Это включает большинство экземпляров классов, рекурсивные типы данных и объекты, содержащие много общих подобъектов. Ключи — обычные строки.

Сохранение переменных

import shelve

wife = ['Pretty', 'Lovely', 'Nice']
# Открыть файл полки и сохранить данные
with shelve.open('mydata') as shelf_file:
    shelf_file['wife'] = wife

Открытие и чтение переменных

# Открыть файл полки и прочитать данные
with shelve.open('mydata') as shelf_file:
    print(type(shelf_file))
    # Доступ к сохраненному значению по ключу
    print(shelf_file['wife'])
<class 'shelve.DbfilenameShelf'>
['Pretty', 'Lovely', 'Nice']

Подобно словарям, значения shelf имеют методы keys() и values(), которые возвращают значения, похожие на списки, ключей и значений в полке. Поскольку эти методы возвращают значения, похожие на списки, а не настоящие списки, вам следует передать их функции list(), чтобы получить их в форме списка.

# Доступ ко всем ключам и значениям в полке
with shelve.open('mydata') as shelf_file:
    print(list(shelf_file.keys()))
    print(list(shelf_file.values()))
['wife']
[['Pretty', 'Lovely', 'Nice']]

Связанные ссылки