\section{Built-in Module \sectcode{dbm}} \bimodindex{dbm} Dbm provides python programs with an interface to the unix \code{ndbm} database library. Dbm objects are of the mapping type, so they can be handled just like objects of the built-in \dfn{dictionary} type, except that keys and values are always strings, and printing a dbm object doesn't print the keys and values. The module defines the following constant and functions: \renewcommand{\indexsubitem}{(in module dbm)} \begin{excdesc}{error} Raised on dbm-specific errors, such as I/O errors. \code{KeyError} is raised for general mapping errors like specifying an incorrect key. \end{excdesc} \begin{funcdesc}{open}{filename\, rwmode\, filemode} Open a dbm database and return a mapping object. \var{filename} is the name of the database file (without the \file{.dir} or \file{.pag} extensions), \var{rwmode} is \code{'r'}, \code{'w'} or \code{'rw'} to open the database fore reading, writing or both respectively, and \var{filemode} is the \UNIX{} mode of the file, used only when the database has to be created (but to be supplied at all times). \end{funcdesc}