Shelve ist ein leistungsstarkes Python-Modul für Objektpersistenz. Wenn Sie ein Objekt zurückstellen, müssen Sie einen Schlüssel angeben, der den Wert des Objekts identifiziert. Auf diese Weise wird die Shelve-Datei zu einer Datenbank mit gespeicherten Werten, auf die jederzeit zugegriffen werden kann.
Beispielcode für Shelving in Python
Um ein Objekt Shelving durchzuführen, importieren Sie zunächst das Modul und weisen Sie dann den Objektwert wie folgt zu:
import shelve database = shelve.open(filename.suffix) object = Object() database['key'] = object
Wenn Sie beispielsweise die Aktiendatenbank behalten möchten, können Sie den folgenden Code anpassen:
import shelve 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
„Aktienwerte.db“ ist bereits geöffnet, Sie müssen es nicht erneut öffnen. Stattdessen können Sie mehrere Datenbanken gleichzeitig öffnen, nach Belieben in jede Datenbank schreiben und sie von Python schließen lassen, wenn das Programm beendet wird. Sie könnten beispielsweise für jedes Symbol eine separate Namensdatenbank führen und Folgendes an den vorherigen Code anhängen:
## assuming shelve is already imported 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
Beachten Sie, dass jede Änderung des Namens oder Suffixes der Datenbankdatei eine andere Datei darstellt und somit eine andere bildet Datenbanken.
Das Ergebnis ist eine zweite Datenbankdatei, die die angegebenen Werte enthält. Im Gegensatz zu den meisten Dateien, die in einem benutzerdefinierten Format geschrieben sind, werden Shelved-Datenbanken in binärer Form gespeichert.
Nachdem die Daten in die Datei geschrieben wurden, kann diese jederzeit aufgerufen werden. Wenn Sie die Daten in einer zukünftigen Sitzung wiederherstellen möchten, öffnen Sie die Datei erneut. Wenn es sich um dieselbe Sitzung handelt, rufen Sie einfach den Wert auf. Die Regaldatenbankdatei wird im Lese-/Schreibmodus geöffnet. Hier ist die grundlegende Syntax dafür:
import shelve database = shelve.open(filename.suffix) object = database['key']
Das Beispiel aus dem vorherigen Beispiel würde also lauten:
import shelve stockname_file = shelve.open('stocknames.db') stockname_ibm = stockname_file['ibm'] stockname_db = stockname_file['db']
Überlegungen zur Aufbewahrung
Es ist wichtig zu beachten, dass die Datenbank beim Schließen geschlossen wird bleiben geöffnet, bis die Datenbank geöffnet wird (oder bis das Programm beendet wird). Wenn Sie also ein Programm beliebiger Größe schreiben, müssen Sie die Datenbank nach der Verwendung schließen. Andernfalls liegt die gesamte Datenbank (nicht nur die gewünschten Werte) im Speicher und verbraucht Rechenressourcen.
Um eine abgelegte Datei zu schließen, verwenden Sie die folgende Syntax:
database.close()
Wenn alle oben genannten Codebeispiele in einem Programm kombiniert würden, wären zwei Datenbankdateien geöffnet und würden Speicher verbrauchen. Nachdem Sie also die Aktiennamen im vorherigen Beispiel gelesen haben, können Sie jede Datenbank nacheinander wie folgt schließen:
stockvalues_db.close() stocknames_db.close() stockname_file.close()
Das obige ist der detaillierte Inhalt vonSo verwenden Sie Shelve zum Speichern von Objekten in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!