Maison  >  Article  >  développement back-end  >  Comment implémenter des objets persistants en Python ?

Comment implémenter des objets persistants en Python ?

WBOY
WBOYavant
2023-09-13 12:41:02759parcourir

Comment implémenter des objets persistants en Python ?

Pour implémenter des objets persistants en Python, utilisez les bibliothèques suivantes.

  • Dans les rayons
  • Kimchi

Module étagère

Une « étagère » est un objet persistant, semblable à un dictionnaire. La différence avec une base de données "dbm" est que les valeurs (pas les clés !) dans une étagère peuvent être essentiellement n'importe quel objet Python - tout ce que le module pickle peut gérer. Cela inclut la plupart des instances de classe, des types de données récursifs et des objets contenant un grand nombre de sous-objets partagés.

Il comporte quelques méthodes clés -

  • shelve.open() - Ouvrir un dictionnaire persistant. Le nom de fichier spécifié est le nom de fichier de base de la base de données sous-jacente. Comme effet secondaire, une extension peut être ajoutée au nom du fichier et plusieurs fichiers peuvent être créés. Par défaut, le fichier de base de données sous-jacent est ouvert en lecture et en écriture.

  • shelve.sync() - Si l'étagère est activée avec la réécriture définie sur True, toutes les entrées du cache sont réécrites. Si possible, le cache est également vidé et le dictionnaire persistant est synchronisé avec les données sur le disque. Cette méthode est automatiquement appelée lorsque l'étagère est fermée à l'aide de close().

  • shelve.close() - Synchronisez et fermez l'objet dictionnaire persistant.

module cornichon

le module pickle implémente un protocole binaire pour sérialiser et désérialiser les objets Python structure.

  • Pickling est le processus de conversion des hiérarchies d'objets Python en octets couler. Pour sérialiser une hiérarchie d'objets, appelez simplement la fonction dumps().

  • Décapage est l’opération inverse. Analysé à partir d'un fichier binaire ou d'un flux d'octets comme un objet bytes Reconvertissez-le dans la hiérarchie des objets. Pour désérialiser le flux de données, vous appelez la fonctionloads() Fonction.

Fonction du module Pickle

Voici les fonctions fournies par le module pickle.

  • pickle.dump() - Écrit la représentation marinée d'un objet dans un fichier objet ouvert.

  • pickle.dumps() - renvoie la représentation pickle de l'objet en tant qu'objet octets au lieu de Écrivez-le dans un fichier.

  • pickle.load() - Lit la représentation marinée d'un objet à partir d'un fichier objet ouvert.

  • pickle.loads() - Renvoie une hiérarchie d'objets reconstruite de représentations marinées de données Objets

Exemple

Tout d'abord, importez le module pickle -

import pickle

Nous avons créé les entrées suivantes pour le décapage.

my_data = { 'BMW', 'Audi', 'Toyota', 'Benz'}

Le fichier demo.pickle a été créé. Ce même fichier .pickle est picklé avec la liste ci-dessus.

with open("demo.pickle","wb") as file_handle:
   pickle.dump(my_data, file_handle, pickle.HIGHEST_PROTOCOL)

Maintenant, décochez le fichier mariné ci-dessus et obtenez les valeurs d'entrée.

with open("demo.pickle","rb") as file_handle:
   res = pickle.load(file_handle)
   print(res_data)

Voyons maintenant l’exemple complet.

import pickle

# Input Data
my_data = { 'BMW', 'Audi', 'Toyota', 'Benz'}

# Pickle the input
with open("demo.pickle","wb") as file_handle:
   pickle.dump(my_data, file_handle, pickle.HIGHEST_PROTOCOL)

# Unpickle the above pickled file
with open("demo.pickle","rb") as file_handle:
   res = pickle.load(file_handle)
   print(my_data) # display the output

Sortie

set(['Benz', 'Toyota', 'BMW', 'Audi'])

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer