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']]