Python-Datenpersistenz - DBM-Paket
Das DBM-Paket enthält ein Wörterbuch wie Datenbanken im DBM-Stil. DBM stands for DataBase Manager. Dies wird vom UNIX-Betriebssystem (und UNIX-ähnlichen Betriebssystem) verwendet. Die DBBM-Bibliothek ist eine einfache Datenbank-Engine, die von Ken Thompson geschrieben wurde. Diese Datenbanken verwenden binär codierte Zeichenfolgenobjekte als Schlüssel sowie als Wert.
Die Datenbank speichert Daten unter Verwendung eines einzelnen Schlüssels (eines Primärschlüssels) in Buckets fester Größe und verwendet Hashing-Techniken, um ein schnelles Abrufen der Daten nach Schlüssel zu ermöglichen.
Das DBM-Paket enthält folgende Module:
dbm.gnu Das Modul ist eine Schnittstelle zur DBM-Bibliotheksversion, wie sie vom GNU-Projekt implementiert wird.
dbm.ndbm Das Modul bietet eine Schnittstelle zur Implementierung von UNIX nbdm.
dbm.dumbwird als Fallback-Option verwendet, falls andere DBM-Implementierungen nicht gefunden werden. Dies erfordert keine externen Abhängigkeiten, ist jedoch langsamer als andere.
>>> dbm.whichdb('mydbm.db')
'dbm.dumb'
>>> import dbm
>>> db=dbm.open('mydbm.db','n')
>>> db['name']=Raj Deshmane'
>>> db['address']='Kirtinagar Pune'
>>> db['PIN']='431101'
>>> db.close()
Die open () Funktion ermöglicht den Modus dieser Flags -
Sr.Nr. | Wert & Bedeutung |
---|---|
1 | 'r' Vorhandene Datenbank nur zum Lesen öffnen (Standard) |
2 | 'w' Öffnen Sie die vorhandene Datenbank zum Lesen und Schreiben |
3 | 'c' Öffnen Sie die Datenbank zum Lesen und Schreiben und erstellen Sie sie, falls sie nicht vorhanden ist |
4 | 'n' Erstellen Sie immer eine neue, leere Datenbank, die zum Lesen und Schreiben geöffnet ist |
Das DBM-Objekt ist ein wörterbuchähnliches Objekt, genau wie das Regalobjekt. Daher können alle Wörterbuchoperationen ausgeführt werden. Das DBM-Objekt kann die Methoden get (), pop (), append () und update () aufrufen. Der folgende Code öffnet 'mydbm.db' mit dem Flag 'r' und iteriert über die Sammlung von Schlüssel-Wert-Paaren.
>>> db=dbm.open('mydbm.db','r')
>>> for k,v in db.items():
print (k,v)
b'name' : b'Raj Deshmane'
b'address' : b'Kirtinagar Pune'
b'PIN' : b'431101'