Módulo Shelve de Python

De la documentación de Python 3

Un "shelf" (estante) es un objeto persistente similar a un diccionario. La diferencia con las bases de datos "dbm" es que los valores (¡no las claves!) en un shelf pueden ser esencialmente objetos arbitrarios de Python; cualquier cosa que el módulo pickle pueda manejar. Esto incluye la mayoría de las instancias de clases, tipos de datos recursivos y objetos que contienen muchos subobjetos compartidos. Las claves son cadenas de caracteres normales.

Guardar variables

import shelve

wife = ['Pretty', 'Lovely', 'Nice']
# Abrir archivo shelf y guardar datos
with shelve.open('mydata') as shelf_file:
    shelf_file['wife'] = wife

Abrir y leer variables

# Abrir archivo shelf y leer datos
with shelve.open('mydata') as shelf_file:
    print(type(shelf_file))
    # Acceder al valor almacenado por clave
    print(shelf_file['wife'])
<class 'shelve.DbfilenameShelf'>
['Pretty', 'Lovely', 'Nice']

Al igual que los diccionarios, los valores de shelf tienen métodos keys() y values() que devolverán valores similares a listas de las claves y los valores en el shelf. Dado que estos métodos devuelven valores similares a listas en lugar de listas verdaderas, debe pasarlos a la función list() para obtenerlos en formato de lista.

# Acceder a todas las claves y valores en el shelf
with shelve.open('mydata') as shelf_file:
    print(list(shelf_file.keys()))
    print(list(shelf_file.values()))
['wife']
[['Pretty', 'Lovely', 'Nice']]

Enlaces relevantes