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

Comment implémenter des objets persistants en Python ?

WBOY
Libérer: 2023-09-13 12:41:02
avant
799 Les gens l'ont consulté

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
Copier après la connexion

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

my_data = { 'BMW', 'Audi', 'Toyota', 'Benz'}
Copier après la connexion

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)
Copier après la connexion

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)
Copier après la connexion

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
Copier après la connexion

Sortie

set(['Benz', 'Toyota', 'BMW', 'Audi'])
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:tutorialspoint.com
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