Module Shelve Python

À partir de la documentation Python 3

Une « étagère » (shelf) est un objet persistant ressemblant à un dictionnaire. La différence avec les bases de données « dbm » est que les valeurs (et non les clés !) dans une étagère peuvent être des objets Python essentiellement arbitraires — tout ce que le module pickle peut gérer. Cela inclut la plupart des instances de classe, les types de données récursifs et les objets contenant de nombreux sous-objets partagés. Les clés sont des chaînes de caractères ordinaires.

Sauvegarder des variables

import shelve

wife = ['Pretty', 'Lovely', 'Nice']
# Ouvrir le fichier d'étagère et sauvegarder les données
with shelve.open('mydata') as shelf_file:
    shelf_file['wife'] = wife

Ouvrir et lire des variables

# Ouvrir le fichier d'étagère et lire les données
with shelve.open('mydata') as shelf_file:
    print(type(shelf_file))
    # Accéder à la valeur stockée par clé
    print(shelf_file['wife'])
<class 'shelve.DbfilenameShelf'>
['Pretty', 'Lovely', 'Nice']

Tout comme les dictionnaires, les valeurs de shelf ont des méthodes keys() et values() qui renverront des valeurs de type liste des clés et des valeurs dans l’étagère. Puisque ces méthodes renvoient des valeurs de type liste au lieu de vraies listes, vous devez les passer à la fonction list() pour les obtenir sous forme de liste.

# Accéder à toutes les clés et valeurs dans l'étagère
with shelve.open('mydata') as shelf_file:
    print(list(shelf_file.keys()))
    print(list(shelf_file.values()))
['wife']
[['Pretty', 'Lovely', 'Nice']]

Liens pertinents