Looking for python Keywords? Try Ask4Keywords

Python Languageétagère


Introduction

Shelve est un module Python utilisé pour stocker des objets dans un fichier. Le module shelve implémente un stockage persistant pour des objets Python arbitraires pouvant être décapés, à l'aide d'une API de type dictionnaire. Le module shelve peut être utilisé comme une option de stockage persistant simple pour les objets Python lorsqu'une base de données relationnelle est excessive. La tablette est accessible par des touches, comme avec un dictionnaire. Les valeurs sont décapées et écrites dans une base de données créée et gérée par anydbm.

Remarques

Remarque: Ne vous fiez pas à la fermeture automatique de la tablette; appelez toujours close() explicitement lorsque vous n'en avez plus besoin, ou utilisez shelve.open() comme gestionnaire de contexte:

with shelve.open('spam') as db:
    db['eggs'] = 'eggs'

Attention:

Étant donné que le module de shelve est soutenu par un pickle , il est impossible de charger une étagère depuis une source non fiable. Comme avec les conserves au vinaigre, charger une étagère peut exécuter du code arbitraire.

Restrictions

1 . Le choix du package de base de données à utiliser (tel que dbm.ndbm ou dbm.gnu) dépend de l’interface disponible. Par conséquent, il n'est pas prudent d'ouvrir la base de données directement à l'aide de dbm. La base de données est également (malheureusement) soumise aux limitations de dbm, si elle est utilisée - cela signifie que (la représentation décapée de) les objets stockés dans la base de données doivent être assez petits, et dans de rares cas refuser les mises à jour

2 .Le module Shelve ne prend pas en charge les accès simultanés en lecture / écriture aux objets mis en attente. (Plusieurs accès en lecture simultanée sont sécurisés.) Lorsqu'un programme a une étagère ouverte pour l'écriture, aucun autre programme ne devrait l'ouvrir pour la lecture ou l'écriture. Le verrouillage de fichier Unix peut être utilisé pour résoudre ce problème, mais cela diffère selon les versions Unix et nécessite des connaissances sur l'implémentation de la base de données utilisée.

étagère Exemples Liés