Comment utiliser le module de l'étagère à Python

Comment utiliser le module de l'étagère à Python
Cet article couvrira un guide sur l'utilisation du module «étagère» à Python. Le module d'étagère peut être utilisé pour stocker des objets Python à mesure que les paires de valeurs de clé dans un fichier externe. Ces paires de valeurs clés sont sérialisées en flux d'octets, un format que Python comprend. Ainsi, vous pouvez enregistrer des objets Python dans un fichier et les récupérer dans un programme en lisant le fichier où les données sérialisées ont été stockées précédemment. Tous les échantillons de code de cet article sont testés avec Python version 3.9.7 sur Ubuntu 21.dix.

Étagère et cornichon

Le module d'étagère utilise le module «Pickle» de Python en dessous pour sérialiser les données. La principale différence entre les modules d'étagère et de cornichons est que l'assemblée peut être utilisée pour associer des objets sérialisés aux clés. Ces clés peuvent être utilisées comme identificateurs dans votre code et vous pouvez y faire référence pour obtenir l'objet sérialisé. Pickle, en revanche, ne fournit pas un moyen natif de stocker des données sérialisées dans des paires de valeurs clés, sans certaines solutions de contournement ni code personnalisé. Ainsi, la mise en place est plus un module de commodité pour une sérialisation facile des objets Python et peut être utilisée pour créer des bases de données simples contenant des données sérialisées.

Utilisation de base et syntaxe

Vous pouvez ouvrir un fichier de base de données à l'aide de la méthode «Open» disponible dans le module de l'étagère. Cette méthode peut être utilisée comme gestionnaire de contexte afin que ce fichier soit correctement fermé lorsque l'appel de méthode se termine. Voici un exemple de code:

étagère d'importation
avec étagère.Open ('Test.db ', "w") comme db:
db ['pommes'] = 50
db ['oranges'] = 80

La première instruction importe le module d'étagère principal dans le programme Python. Ensuite, en utilisant le «avec étagère.Call de méthode ouvrir »et gestionnaire de contexte," Tester.Le fichier db ”est ouvert en tant que« db »en mode écriture. Le fichier peut avoir n'importe quel nom et extension. Les deux dernières déclarations sont utilisées pour créer deux nouvelles paires de valeurs clés en utilisant une syntaxe de type dictionnaire Python. Ces paires de valeurs clés sont ensuite stockées dans le test.Fichier DB sous forme sérialisée.

Après avoir exécuté l'échantillon de code ci-dessus, si vous ouvrez le test.Fichier DB Dans un éditeur de texte, vous devriez voir des données similaires à ceci:

Comme vous pouvez le voir, les données stockées dans le fichier ne sont pas sous forme lisible. Cependant, si vous ouvrez ce fichier à l'aide de l'étagère, vous pourrez récupérer des paires de valeurs clés dans votre programme Python. Voici un exemple de code:

étagère d'importation
avec étagère.Open ('Test.db ') comme db:
print (db ['pommes'])
imprimer (db ['oranges'])

Les paires de valeurs clés sérialisées par étagère sont identiques à un objet de type dictionnaire en python et ils soutiennent toutes leurs méthodes. Vous pouvez donc vous référer aux objets en fournissant une clé en accolades carrées. Dans les deux dernières déclarations, la valeur des deux clés est récupérée en utilisant une syntaxe de type dictionnaire. Après avoir exécuté l'échantillon de code ci-dessus, vous devriez obtenir la sortie suivante:

50
80

Notez que Python choisit automatiquement un format de fichier de base de données approprié pour la mise en œuvre, en tenant compte du système d'exploitation à partir duquel le programme est exécuté. Cependant, cela n'affecte pas l'utilisation du module d'étagère et la fonctionnalité des objets sérialisés en utilisant.

Obtenir toutes les paires de valeurs clés à partir d'un fichier de base de données créé à l'aide d'étagères

Pour obtenir toutes les clés et les paires de valeur, vous devez appeler des méthodes «clés» et «valeurs», tout comme vous le feriez avec un objet de type dictionnaire dans Python. Voici un exemple de code:

étagère d'importation
avec étagère.Open ('Test.db ') comme db:
éléments = liste (db.articles())
clés = liste (db.clés())
valeurs = liste (db.valeurs())
Imprimer (articles)
imprimer (clés)
Imprimer (valeurs)

Comme vous pouvez le voir dans l'échantillon de code ci-dessus, les méthodes «éléments», «clés» et «valeurs» ont été appelées pour récupérer les clés et les valeurs. Ces clés et valeurs sont des objets de type étagère, vous devez donc les convertir en une liste ou tout autre itérable pour obtenir leurs valeurs réelles. Après avoir exécuté l'échantillon de code ci-dessus, vous devriez obtenir la sortie suivante:

[(«pommes», 50), («oranges», 80)]
[«pommes», «oranges»]
[50, 80]

Notez que si vous souhaitez simplement parcourir les clés et les valeurs, vous pouvez le faire en utilisant pour Loop ou toute autre instruction sans convertir les clés et les valeurs en une liste Python ou à tout autre objet de ce type.

Vous pouvez sérialiser les fonctions et les classes à l'aide de l'étagère

Vous pouvez sérialiser n'importe quel objet Python à l'aide du module d'étagère, même des fonctions et des classes. Voici un exemple illustrant la sérialisation d'une fonction, la récupérant, puis l'appelant faire quelques calculs.

étagère d'importation
Def Square (numéro):
Numéro de retour * Numéro
avec étagère.Open ('Test.db ', "w") comme db:
db ['square_function'] = carré
avec étagère.Open ('Test.db ') comme db:
carré = db ['square_function']
Imprimer (carré (5))

Une nouvelle fonction appelée «Square» a été définie. Il calcule le carré d'un nombre et le renvoie. Ensuite, cette fonction est sérialisée à l'aide d'étagères et stockée dans le test.Fichier de base de données DB. La fonction sérialisée est ensuite lu dans la variable «carrée». Étant donné que la variable carrée est désormais une instance de la fonction carrée définie précédemment, vous pouvez l'appeler pour calculer le carré d'un numéro.

Après avoir exécuté l'échantillon de code ci-dessus, vous devriez obtenir la sortie suivante:

25

Conclusion

La sérialisation est un processus de stockage d'objets Python dans un fichier de base de données afin qu'ils puissent être récupérés sous une forme qui est exactement la même que la façon dont ils ont été définis à l'origine avant la sérialisation. Cela vous permet de stocker des objets Python complexes au format structuré. Le module d'étagère utilise le module Pickle pour stocker et récupérer des objets Python sérialisés. Il utilise la structure de la paire de valeurs de clé pour gérer les objets sérialisés, ce qui facilite les gérer.