Python – Database Manager (dbm) package
Last Updated :
18 May, 2023
In this article, we will learn about dbm, a package in the built-in library of Python. The dbm package in Python provides a simple dictionary-like interface of the form DBM (DataBase Manager) generally used in the Unix operating system. dbm stores data in simple key-value pair form like a dictionary, making it easier to insert, edit and retrieve data from the database. It stores data using a single primary key (“key”) in fixed-size blocks.
There are three types of submodules in dbm package :
- dbm.gnu: GNU’s reinterpretation of dbm
- dbm.ndbm: Interface based on ndbm
- dbm.dumb: Portable DBM implementation
The following are the main functions available in dbm package :
dbm.open()
This function is used to open a dbm database or create a new database if not exist.
Syntax: dbm.open(file, flag=’r’, mode=0o666)
Parameters: This function take following parameters:
- file: name of the file.
- flag: mode of permissions. which can be ‘r’, ‘w’, ‘c’, or ‘n’.
- ‘r’: open the existing database with permission to read only.
- ‘w’: open the existing database with permission to read and write.
- ‘c’: open the database for read and write, also create a new one if it doesn’t exists.
- ‘n’: Always create a new database with permission to both read and write.
- mode: The Unix mode of the argument which is a octal form default set to 0o666, used only when new database is to be created.
Return: The corresponding object address of the database file.
dbm.whichdb()
This function attempts to guess which of the several simple database modules available- dbm.gnu, dbm.ndbm, or dbm.dumb- should be used to open a given file.
Syntax: dbm.whichdb(filename)
Parameter: filename- Name of the file.
Returns: The function returns one of the following values :
- None: If the database doesn’t exists or it can’t be opened.
- (‘ ‘): An empty string, if the file exists but the file format can’t be guessed else
- The required module name: If the type is successfully detected then one of the string names is returned, ‘dbm.gnu’, ‘dbm.ndbm’ or ‘dbm.dumb’.
Following are the built-in methods for dbm objects :
- open(filename): This method will open the file of the database whose name is passed as the parameter.
- whichdb(filename): Returns the database module used to open the file provided as parameters.
- get(key): Returns the value corresponding to key given in argument.
- keys(): Returns an iterable list containing keys of the dictionary.
- firstkey(): It returns the starrting key.
- nextkey(key): It returns the key that is next to the current key which is passed as arguments.
- setdefault(): set a default primary key given in the argument.
- reorganize(): Reorganises the databse to increase space y compacting the data.
- error(): A tuple conatining exceptions that are raised when some error is occured while executing dbm module.
- sync(): Helps to synchronize data files and on disk directory.
- close(): Doesn’t take any argument nor returns anything. Just closes the caller object database. (db in this case)
Below is the implementation of all the above-discussed methods/functions:
Code:
Python3
import dbm
db = dbm. open ( 'mydb' , 'n' )
db[ 'name' ] = 'GeeksforGeeks'
db[ 'phone' ] = '8888'
db[ 'Short name' ] = 'GfG'
db[ 'Date' ] = '01/01/2000'
print (db.get( 'name' ))
print ()
for value in db.values():
print (value)
print ()
for key in db.keys():
print (db.get(key))
print ()
db.pop( 'phone' )
for key, value in db.items():
print (key, value)
db.clear()
for key, value in db.items():
print (key, value)
db.close()
|
Output :
b'GeeksforGeeks'
b'GeeksforGeeks'
b'8888'
b'GfG'
b'01/01/2000'
b'GeeksforGeeks'
b'8888'
b'GfG'
b'01/01/2000'
b'name' b'GeeksforGeeks'
b'Short name' b'GfG'
b'Date' b'01/01/2000'
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...