3.14 shelve --- Persistance d'objets de Python

Une ``étagère'' (shelf) est un objet persistant, de genre dictionnaire. La différence avec les bases de données ``dbm'' est que les valeurs (pas les clés!) dans une étagère peuvent être par nature n'importe quel type d'objet Python - tout ce que le module pickle peut traiter. Ceci inclut la plupart des instances de classes, les types de données récursifs, et les objets contenant un grand nombre de sous-objets partagés. Les clés sont habituellement des chaînes de caractères.

Pour résumer l'interface (cle est une chaîne de caractères, donneeest un objet arbitraire):

import shelve

d = shelve.open(fichier) # ouvre, avec un nom de fichier (g)dbm -- pas d'extension

d[cle] = donnee # stocke la donnée à la clé (écrase les anciennes données
                # si la clé existait déjà)
donnee = d[cle] # récupère les données à la clé (déclenche KeyError si
                # cette clé n'existe pas)
del d[cle]      # détruit les données stockées à la clé (déclenche KeyError
                # si cette clé n'existe pas)
indic = d.has_key(cle)   # vrai si la clé existe
liste = d.keys() # la liste de toutes les clés existantes (lent!)

d.close()       # fermeture

Restrictions:

Voir aussi:

Module anydbm:
Interface générique avec des bases de données de style dbm.
Module dbhash:
Interface avec la base de données db de BSD.
Module dbm:
Interface standard de bases de données Unix.
Module dumbdbm:
Implémentation portable de l'interface dbm.
Module gdbm:
Interface avec la base de donnés GNU, basée sur l'interface dbm.
Module pickle:
Sérialisation d'objets utilisée par shelve.
Module cPickle:
Version haute performance de pickle.