Nouveau

Utiliser Shelve pour sauvegarder des objets en Python

Utiliser Shelve pour sauvegarder des objets en Python

Shelve est un puissant module Python pour la persistance des objets. Lorsque vous rangez un objet, vous devez attribuer une clé permettant de connaître la valeur de l'objet. De cette manière, le fichier shelve devient une base de données de valeurs stockées, chacune d'entre elles pouvant être consultée à tout moment.

Exemple de code pour Shelve in Python

Pour stocker un objet, importez d'abord le module, puis affectez la valeur de l'objet comme suit:

étagère d'importation
database = shelve.open (nomfichier.suffix)
objet = objet ()
database'key '= objet

Si vous souhaitez conserver une base de données sur les actions, par exemple, vous pouvez adapter le code suivant:

étagère d'importation
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

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

## en supposant que shelve est déjà importé
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

Notez que toute modification du nom ou du suffixe du fichier de base de données constitue un fichier différent et, par conséquent, une base de données différente.

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 des formats personnalisés, les bases de données étalées sont enregistrées sous forme binaire.

Une fois les données écrites dans le fichier, elles peuvent être rappelées à tout moment. Si vous souhaitez restaurer les données lors d'une session ultérieure, vous rouvrez le fichier. Si c'est la même session, rappelez simplement la valeur; Les fichiers de base de données shelve sont ouverts en mode lecture-écriture. Voici la syntaxe de base pour y parvenir:

étagère d'importation
database = shelve.open (nomfichier.suffix)
objet = base de données '

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

étagère d'importation
stockname_file = shelve.open ('stocknames.db')
stockname_ibm = stockname_file'ibm '
stockname_db = stockname_file'db '

Considérations avec Shelve

Il est important de noter que la base de données reste ouverte jusqu'à ce que vous la fermiez (ou jusqu'à ce que le programme se termine). Par conséquent, si vous écrivez un programme de toute taille, vous souhaitez fermer la base de données après l'avoir utilisée. Sinon, toute la base de données (et pas seulement la valeur souhaitée) reste en mémoire et consomme des ressources informatiques.

Pour fermer un fichier shelve, utilisez la syntaxe suivante:

database.close ()

Si tous les exemples de code ci-dessus étaient incorporés dans un programme, nous aurions deux fichiers de base de données ouverts et consommant de la mémoire à ce stade. Ainsi, après avoir lu les noms de stock dans l'exemple précédent, vous pouvez ensuite fermer chaque base de données comme suit:

stockvalues_db.close ()
stocknames_db.close ()
stockname_file.close ()


Voir la vidéo: Leçon 13 Python : serialisation (Juin 2021).