Python Language Créer une nouvelle étagère


Exemple

Le moyen le plus simple d’utiliser Shelve est la classe DbfilenameShelf . Il utilise anydbm pour stocker les données. Vous pouvez utiliser la classe directement, ou simplement appeler shelve.open () :

import shelve

s = shelve.open('test_shelf.db')
try:
    s['key1'] = { 'int': 10, 'float':9.5, 'string':'Sample data' }
finally:
    s.close()

Pour accéder à nouveau aux données, ouvrez l'étagère et utilisez-la comme un dictionnaire:

    import shelve
    
    s = shelve.open('test_shelf.db')
    try:
        existing = s['key1']
    finally:
        s.close()

print existing

Si vous exécutez les deux exemples de scripts, vous devriez voir:

$ python shelve_create.py
$ python shelve_existing.py

{'int': 10, 'float': 9.5, 'string': 'Sample data'}

Le module dbm ne prend pas en charge plusieurs applications écrivant simultanément dans la même base de données. Si vous savez que votre client ne modifiera pas l'étagère, vous pouvez demander à shelve d'ouvrir la base de données en lecture seule.

import shelve

s = shelve.open('test_shelf.db', flag='r')
try:
    existing = s['key1']
finally:
    s.close()

print existing

Si votre programme tente de modifier la base de données alors qu'il est ouvert en lecture seule, une exception d'erreur d'accès est générée. Le type d'exception dépend du module de base de données sélectionné par anydbm lors de la création de la base de données.