So verwenden Sie das Regalmodul in Python

So verwenden Sie das Regalmodul in Python
Dieser Artikel behandelt eine Anleitung zur Verwendung des „Regal“ -Moduls in Python. Mit dem Regalmodul kann Python-Objekte als Schlüsselwertpaare in einer externen Datei gespeichert werden. Diese Schlüsselwertpaare werden in Byte-Streams serialisiert, ein Format, das Python versteht. Sie können also Python -Objekte in einer Datei speichern und sie in einem Programm wieder zurückbringen, indem Sie die Datei lesen, in der serialisierte Daten zuvor gespeichert wurden. Alle Code -Beispiele in diesem Artikel werden mit Python Version 3 getestet.9.7 auf Ubuntu 21.10.

Regale und Gurke

Das Regalmodul verwendet das „Pickle“ -Modul von Python darunter, um die Daten zu serialisieren. Der Hauptunterschied zwischen Regal- und Gurkenmodulen besteht darin, dass Regale zum Zusammenhang mit serialisierten Objekten mit Schlüsseln verwendet werden kann. Diese Schlüssel können als Bezeichner in Ihrem Code verwendet werden, und Sie können sie verweisen, um das serialisierte Objekt zu erhalten. Die Gurke hingegen bietet keine native Möglichkeit, serialisierte Daten in Schlüsselwertpaaren zu speichern, ohne einige Problemumgehungen oder benutzerdefinierte Code. Daher ist das Regal eher ein Convenience -Modul für eine einfache Serialisierung von Python -Objekten und kann verwendet werden, um einfache Datenbanken mit serialisierten Daten zu erstellen.

Grundnutzung und Syntax

Sie können eine Datenbankdatei mit der im Regalmodul verfügbaren „Öffnen“ -Methode öffnen. Diese Methode kann als Kontextmanager verwendet werden, damit diese Datei nach Abschluss der Methode ordnungsgemäß geschlossen ist. Hier ist ein Code -Beispiel:

Regale importieren
mit Regal.offen ('Test.db ', "w") als DB:
db ['apples'] = 50
DB ['Orangen'] = 80

Die erste Aussage importiert das Hauptregalmodul in das Python -Programm. Als nächstes mit dem „mit Regal".Open “-Methode -Anruf und Kontextmanager,„ Test.Die Datei dB ”wird im Schreibmodus als„ DB “geöffnet. Die Datei kann einen beliebigen Namen und Erweiterung haben. Die letzten beiden Aussagen werden verwendet, um zwei neue Schlüsselwertpaare mithilfe von Python Dictionary-ähnlicher Syntax zu erstellen. Diese Schlüsselwertpaare werden dann im Test gespeichert.DB -Datei in serialisierter Form.

Nachdem Sie das obige Code -Beispiel ausgeführt haben, öffnen Sie den Test, wenn Sie den Test öffnen.DB -Datei In einem Texteditor sollten Sie einige ähnliche Daten sehen:

Wie Sie sehen können, sind die in der Datei gespeicherten Daten nicht in menschlich lesbarer Form enthalten. Wenn Sie diese Datei jedoch mit Regal öffnen, können Sie Schlüsselwertpaare in Ihrem Python-Programm abrufen. Hier ist ein Code -Beispiel:

Regale importieren
mit Regal.offen ('Test.db ') als db:
print (db ['apples'])
print (db ['orangen'])

Schlüsselwertpaare, die durch Regal serialisiert wurden. Sie können also auf Objekte verweisen, indem Sie einen Schlüssel in quadratischen Klammern liefern. In den letzten beiden Aussagen wird der Wert beider Tasten unter Verwendung der Wörterbuch-ähnlichen Syntax abgerufen. Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

50
80

Beachten Sie, dass Python automatisch ein geeignetes Datenbankdateiformat für Regal wählt, unter Berücksichtigung des Betriebssystems, aus dem das Programm ausgeführt wird. Es beeinflusst jedoch keinen Einfluss auf die Verwendung des Regalmoduls und die Funktionalität von Objekten.

Erhalten Sie alle Schlüsselwertpaare aus einer Datenbankdatei, die mit Regal erstellt wurde

Um alle Tasten und Wertpaare zu erhalten, müssen Sie "Tasten" und "Werte" -Methoden aufrufen, genau wie Sie es mit einem Wörterbuch -Objekt in Python tun würden. Hier ist ein Code -Beispiel:

Regale importieren
mit Regal.offen ('Test.db ') als db:
items = list (dB.Artikel())
Keys = Liste (DB.Schlüssel())
values ​​= list (dB.Werte())
Druck (Artikel)
Druck (Schlüssel)
Druck (Werte)

Wie Sie im obigen Code -Beispiel sehen können. Diese Schlüssel und Werte sind Objekte vom Typ Regale, sodass Sie sie in eine oder andere Iterable konvertieren müssen, um ihre tatsächlichen Werte zu erhalten. Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

[('Äpfel', 50), ('Orangen', 80)]
['Äpfel', 'Orangen']]
[50, 80]

Beachte.

Sie können Funktionen und Klassen mit Regalen serialisieren

Sie können jedes Python -Objekt mit dem Regalmodul serialisieren, sogar Funktionen und Klassen. Hier ist ein Beispiel, das die Serialisierung einer Funktion veranschaulicht, sie zurückholt und dann aufgerufen wird, um einige Berechnungen durchzuführen.

Regale importieren
Def Square (Nummer):
Rückgabenummer * Nummer
mit Regal.offen ('Test.db ', "w") als DB:
db ['square_function'] = quadratisch
mit Regal.offen ('Test.db ') als db:
Square = db ['square_function']
Druck (Quadrat (5))

Eine neue Funktion namens "Square" wurde definiert. Es berechnet das Quadrat einer Zahl und gibt es zurück. Als nächstes wird diese Funktion unter Verwendung von Regalen serialisiert und im Test gespeichert.DB -Datenbankdatei. Die serialisierte Funktion wird dann in die "quadratische" Variable zurückgelesen. Da die quadratische Variable jetzt eine Instanz der zuvor definierten quadratischen Funktion ist, können Sie sie anrufen, um das Quadrat einer Zahl zu berechnen.

Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

25

Abschluss

Serialisierung ist ein Prozess des Speicherns von Python -Objekten in einer Datenbankdatei, damit sie in einem Formular abgerufen werden können. Auf diese Weise können Sie komplexe Python -Objekte im strukturierten Format speichern. Das Regalmodul verwendet das Gurkenmodul, um serialisierte Python -Objekte zu speichern und abzurufen. Es verwendet die Schlüsselwertpaarstruktur, um serialisierte Objekte zu verarbeiten, wodurch sie einfacher zu verwalten ist.