Maison > développement back-end > Tutoriel Python > Comment utiliser Shelve pour enregistrer des objets en Python

Comment utiliser Shelve pour enregistrer des objets en Python

藏色散人
Libérer: 2019-01-17 09:49:18
original
2692 Les gens l'ont consulté

Shelve est un module Python puissant pour la persistance des objets. Lorsque vous rangez un objet, vous devez spécifier une clé qui identifie la valeur de l'objet. De cette manière, le fichier étagère devient une base de données de valeurs stockées, accessibles à tout moment.

Comment utiliser Shelve pour enregistrer des objets en Python

Exemple de code pour la mise en rayon en Python

Pour mettre un objet en rayon, importez d'abord le module, puis attribuez la valeur de l'objet comme suit :

 import shelve
database = shelve.open(filename.suffix)
object = Object()
database['key'] = object
Copier après la connexion

Par exemple, si vous souhaitez conserver la base de données boursière, vous pouvez ajuster le code suivant :

import shelve
stockvalues_db = shelve.open('stockvalues.db')
object_ibm = Values.ibm()
stockvalues_db['ibm'] = object_ibm
object_vmw = Values.vmw()
stockvalues_db['vmw'] = object_vmw
object_db = Values.db()
stockvalues_db['db'] = object_db
Copier après la connexion

"stock valeurs.db" est déjà ouvert, vous n'avez pas besoin de l'ouvrir encore. Au lieu de cela, vous pouvez ouvrir plusieurs bases de données à la fois, écrire dans chacune à volonté et laisser Python les fermer à la fin du programme. Par exemple, vous pouvez conserver une base de données de noms distincte pour chaque symbole et ajouter ce qui suit au code précédent :

 ## assuming shelve is already imported
stocknames_db = shelve.open('stocknames.db')
objectname_ibm = Names.ibm()
stocknames_db['ibm'] = objectname_ibm
objectname_vmw = Names.vmw()
stocknames_db['vmw'] = objectname_vmw
objectname_db = Names.db()
stocknames_db['db'] = objectname_db
Copier après la connexion

Veuillez noter que tout changement dans le nom ou le suffixe du fichier de base de données constitue un fichier différent, formant ainsi différentes bases de données.

Le résultat est un deuxième fichier de base de données contenant les valeurs données. Contrairement à la plupart des fichiers écrits dans un format personnalisé, les bases de données mises de côté sont enregistrées sous forme binaire.

Après avoir écrit les données dans le fichier, celui-ci peut être appelé à tout moment. Si vous souhaitez restaurer les données lors d'une session ultérieure, rouvrez le fichier. S'il s'agit de la même session, appelez simplement la valeur ; le fichier de base de données shelve est ouvert en mode lecture-écriture. Voici la syntaxe de base pour y parvenir :

 import shelve
database = shelve.open(filename.suffix)
object = database['key']
Copier après la connexion

Ainsi, l'exemple de l'exemple précédent se lirait comme suit :

 import shelve
stockname_file = shelve.open('stocknames.db')
stockname_ibm = stockname_file['ibm']
stockname_db = stockname_file['db']
Copier après la connexion

Mettre les considérations de côté

Assurez-vous de noter que la base de données restera ouverte jusqu'à ce qu'elle soit fermée (ou jusqu'à la fin du programme). Donc, si vous écrivez un programme de n'importe quelle taille, vous devez fermer la base de données après l'avoir utilisée. Sinon, la base de données entière (pas seulement les valeurs souhaitées) reste en mémoire et consomme des ressources informatiques.

Pour fermer un fichier mis en attente, utilisez la syntaxe suivante :

database.close()
Copier après la connexion

Si tous les exemples de code ci-dessus étaient combinés en un seul programme, alors nous aurions deux fichiers de base de données ouverts et consommant de la mémoire. Ainsi, après avoir lu les noms de titres dans l'exemple précédent, vous pouvez fermer chaque base de données tour à tour comme ceci :

 stockvalues_db.close()
stocknames_db.close()
stockname_file.close()
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal