Python Shelve Modul
Aus der Python 3 Dokumentation
Ein „Shelf“ ist ein persistentes, wörterbuchähnliches Objekt. Der Unterschied zu „dbm“-Datenbanken besteht darin, dass die Werte (nicht die Schlüssel!) in einem Shelf im Wesentlichen beliebige Python-Objekte sein können – alles, was das pickle-Modul verarbeiten kann. Dazu gehören die meisten Klasseninstanzen, rekursive Datentypen und Objekte, die viele gemeinsam genutzte Unterobjekte enthalten. Die Schlüssel sind gewöhnliche Strings.
Variablen speichern
import shelve
wife = ['Pretty', 'Lovely', 'Nice']
# Shelf-Datei öffnen und Daten speichern
with shelve.open('mydata') as shelf_file:
shelf_file['wife'] = wife
Variablen öffnen und lesen
# Shelf-Datei öffnen und Daten lesen
with shelve.open('mydata') as shelf_file:
print(type(shelf_file))
# Auf den gespeicherten Wert über den Schlüssel zugreifen
print(shelf_file['wife'])
<class 'shelve.DbfilenameShelf'>
['Pretty', 'Lovely', 'Nice']
Genau wie Wörterbücher haben shelf-Werte keys()- und values()-Methoden, die listenähnliche Werte der Schlüssel und Werte im Shelf zurückgeben. Da diese Methoden listenähnliche Werte anstelle von echten Listen zurückgeben, sollten Sie sie an die Funktion list() übergeben, um sie in Listenform zu erhalten.
# Auf alle Schlüssel und Werte im Shelf zugreifen
with shelve.open('mydata') as shelf_file:
print(list(shelf_file.keys()))
print(list(shelf_file.values()))
['wife']
[['Pretty', 'Lovely', 'Nice']]