So verwenden Sie Shelve zum Speichern von Objekten in Python

藏色散人
Freigeben: 2019-01-17 09:49:18
Original
2675 Leute haben es durchsucht

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.

So verwenden Sie Shelve zum Speichern von Objekten in Python

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
Nach dem Login kopieren

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
Nach dem Login kopieren

„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
Nach dem Login kopieren

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']
Nach dem Login kopieren

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']
Nach dem Login kopieren

Ü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()
Nach dem Login kopieren

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()
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage