\section{Standard Module \module{anydbm}} \label{module-anydbm} \stmodindex{anydbm} \module{anydbm} is a generic interface to variants of the DBM database --- \module{dbhash}\refbimodindex{dbhash}, \module{gdbm}\refbimodindex{gdbm}, or \module{dbm}\refbimodindex{dbm}. If none of these modules is installed, the slow-but-simple implementation in module \module{dumbdbm}\refstmodindex{dumbdbm} will be used. \begin{funcdesc}{open}{filename\optional{, flag\optional{, mode}}} Open the database file \var{filename} and return a corresponding object. The optional \var{flag} argument can be \code{'r'} to open an existing database for reading only, \code{'w'} to open an existing database for reading and writing, \code{'c'} to create the database if it doesn't exist, or \code{'n'}, which will always create a new empty database. If not specified, the default value is \code{'r'}. The optional \var{mode} argument is the \UNIX{} mode of the file, used only when the database has to be created. It defaults to octal \code{0666} (and will be modified by the prevailing umask). \end{funcdesc} \begin{excdesc}{error} An alternate name for the \exception{error} exception defined by the underlying database implementation. \end{excdesc} The object returned by \function{open()} supports most of the same functionality as dictionaries; keys and their corresponding values can be stored, retrieved, and deleted, and the \method{has_key()} and \method{keys()} methods are available. Keys and values must always be strings. \section{Standard Module \module{dumbdbm}} \label{module-dumbdbm} \stmodindex{dumbdbm} A simple and slow database implemented entirely in Python. This should only be used when no other DBM-style database is available. \begin{funcdesc}{open}{filename\optional{, flag\optional{, mode}}} Open the database file \var{filename} and return a corresponding object. The optional \var{flag} argument can be \code{'r'} to open an existing database for reading only, \code{'w'} to open an existing database for reading and writing, \code{'c'} to create the database if it doesn't exist, or \code{'n'}, which will always create a new empty database. If not specified, the default value is \code{'r'}. The optional \var{mode} argument is the \UNIX{} mode of the file, used only when the database has to be created. It defaults to octal \code{0666} (and will be modified by the prevailing umask). \end{funcdesc} \begin{excdesc}{error} Raised for errors not reported as \exception{KeyError} errors. \end{excdesc}