Persistencia de datos de Python - paquete dbm
El paquete dbm presenta un diccionario como una interfaz de bases de datos de estilo DBM. DBM stands for DataBase Manager. Esto es utilizado por el sistema operativo UNIX (y similar a UNIX). La biblioteca dbbm es un motor de base de datos simple escrito por Ken Thompson. Estas bases de datos utilizan objetos de cadena codificados en binario como clave, así como como valor.
La base de datos almacena datos mediante el uso de una sola clave (una clave principal) en depósitos de tamaño fijo y utiliza técnicas de hash para permitir la recuperación rápida de los datos por clave.
El paquete dbm contiene los siguientes módulos:
dbm.gnu El módulo es una interfaz para la versión de la biblioteca DBM implementada por el proyecto GNU.
dbm.ndbm proporciona una interfaz para la implementación de UNIX nbdm.
dbm.dumbse utiliza como una opción de respaldo en caso de que no se encuentren otras implementaciones de dbm. Esto no requiere dependencias externas pero es más lento que otros.
>>> 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()
La función open () permite el modo de estos indicadores:
No Señor. | Valor y significado |
---|---|
1 | 'r' Abrir la base de datos existente solo para lectura (predeterminado) |
2 | 'w' Abra la base de datos existente para leer y escribir |
3 | 'c' Base de datos abierta para lectura y escritura, creándola si no existe |
4 | 'n' Cree siempre una base de datos nueva, vacía, abierta para lectura y escritura |
El objeto dbm es un objeto similar a un diccionario, como un objeto de estantería. Por tanto, se pueden realizar todas las operaciones del diccionario. El objeto dbm puede invocar los métodos get (), pop (), append () y update (). El siguiente código abre 'mydbm.db' con el indicador 'r' e itera sobre la colección de pares clave-valor.
>>> 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'