Skip to content
Related Articles

Related Articles

Improve Article

Python – Database Manager (dbm) package

  • Last Updated : 14 Aug, 2021

In this article we will learn about dbm, a package in built-in library of python. dbm package in python provides a simple dictionary like interface of the form DBM (DataBase Manager) generally used in Unix operating system. dbm stores data in simple key – value pair form like a dictionary which makes it easier to insert, edit and retrieve data from database. It stores data by the use of a single primary key (“key”) in fixed size blocks. 

There are three types of sub modules in dbm package :

  1. dbm.gnu: GNU’s reinterpretation of dbm
  2. dbm.ndbm: Interface based on ndbm
  3. dbm.dumb: Portable DBM implementation

Following are the main functions available in dbm package :

This function is used to open a dbm database or create a new database if not exist.

Syntax:, 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. 


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 :

  • items(): This method returns the items contained in the database of caller object in form of key value pairs. (db is the caller object database).
  • clear(): clear all the values present in the database.
  • get(key): returns the value corresponding to key given in argument.
  • keys(), iterkeys(): returns an iterable list containing keys of the dictionary.
  • pop(key): Deletes / pops the key, value pair corresponding to key given in argument.
  • setdefault(): set a default primary key given in the argument.
  • sync(): Helps to synchronize data files and on disk directory.
  • update(): updates the existing key value. Just like dictionary object.
  • values(): iterate through all the values present in database.
  • 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 discuss methods/functions:



# importing the dbm package
import dbm
# using the open function
# to create a new database named
# 'mydb' in 'n' mode, object
# returned in db variable.
db ='mydb','n')
# inserting the new key and
# values in the database.
db['name'] = 'GeeksforGeeks'
db['phone'] = '8888'
db['Short name'] = 'GfG'
db['Date'] = '01/01/2000'
# getting and printing
# the value through get method.
# printing the values of
# database through values()
# method (iterator).
for value in db.values():
# printing the values through
# key iterator.
for key in db.keys():
# poping out the key, value
# pair corresponding to
# 'phone' key.
# printing the key, value
# pairs present in database.
for key, value in db.items():
    print(key, value)
# clearing all the key values
# in database.
# Below loop will print nothing
# as database is cleared above.
for key, value in db.items():
    print(key, value)
# closing the database.
# This code is contributed by Amit Mangal.

Output :




b'name' b'GeeksforGeeks'
b'Short name' b'GfG'
b'Date' b'01/01/2000' 

 Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.  

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course

My Personal Notes arrow_drop_up
Recommended Articles
Page :