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']]