1998-08-10 16:42:37 -03:00
|
|
|
\section{\module{anydbm} ---
|
1999-02-19 20:14:17 -04:00
|
|
|
Generic access to DBM-style databases}
|
1998-07-23 14:59:49 -03:00
|
|
|
|
1999-02-19 20:14:17 -04:00
|
|
|
\declaremodule{standard}{anydbm}
|
1998-07-23 14:59:49 -03:00
|
|
|
\modulesynopsis{Generic interface to DBM-style database modules.}
|
|
|
|
|
1997-04-03 18:41:49 -04:00
|
|
|
|
1998-02-18 11:05:47 -04:00
|
|
|
\module{anydbm} is a generic interface to variants of the DBM
|
1999-04-15 12:11:40 -03:00
|
|
|
database --- \refmodule{dbhash}\refstmodindex{dbhash} (requires
|
1999-04-19 18:19:21 -03:00
|
|
|
\refmodule{bsddb}\refbimodindex{bsddb}),
|
1999-04-05 16:46:21 -03:00
|
|
|
\refmodule{gdbm}\refbimodindex{gdbm}, or
|
|
|
|
\refmodule{dbm}\refbimodindex{dbm}. If none of these modules is
|
|
|
|
installed, the slow-but-simple implementation in module
|
|
|
|
\refmodule{dumbdbm}\refstmodindex{dumbdbm} will be used.
|
1997-11-30 01:38:44 -04:00
|
|
|
|
1998-04-07 19:08:02 -03:00
|
|
|
\begin{funcdesc}{open}{filename\optional{, flag\optional{, mode}}}
|
1998-02-18 11:05:47 -04:00
|
|
|
Open the database file \var{filename} and return a corresponding object.
|
1998-04-28 12:29:26 -03:00
|
|
|
|
1999-04-05 16:46:21 -03:00
|
|
|
If the database file already exists, the \refmodule{whichdb} module is
|
1998-04-28 12:29:26 -03:00
|
|
|
used to determine its type and the appropriate module is used; if it
|
1999-04-05 16:46:21 -03:00
|
|
|
does not exist, the first module listed above that can be imported is
|
1998-04-28 12:29:26 -03:00
|
|
|
used.
|
|
|
|
|
1997-04-03 18:41:49 -04:00
|
|
|
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
|
1997-05-08 23:23:45 -03:00
|
|
|
\code{0666} (and will be modified by the prevailing umask).
|
1997-04-03 18:41:49 -04:00
|
|
|
\end{funcdesc}
|
|
|
|
|
1998-04-07 19:08:02 -03:00
|
|
|
\begin{excdesc}{error}
|
1998-04-28 12:29:26 -03:00
|
|
|
A tuple containing the exceptions that can be raised by each of the
|
|
|
|
supported modules, with a unique exception \exception{anydbm.error} as
|
|
|
|
the first item --- the latter is used when \exception{anydbm.error} is
|
|
|
|
raised.
|
1998-04-07 19:08:02 -03:00
|
|
|
\end{excdesc}
|
|
|
|
|
1998-02-18 11:05:47 -04:00
|
|
|
The object returned by \function{open()} supports most of the same
|
1997-04-03 18:41:49 -04:00
|
|
|
functionality as dictionaries; keys and their corresponding values can
|
1998-02-18 11:05:47 -04:00
|
|
|
be stored, retrieved, and deleted, and the \method{has_key()} and
|
|
|
|
\method{keys()} methods are available. Keys and values must always be
|
1997-05-08 23:23:45 -03:00
|
|
|
strings.
|
1997-04-03 18:41:49 -04:00
|
|
|
|
2006-07-28 09:48:07 -03:00
|
|
|
The following example records some hostnames and a corresponding title,
|
|
|
|
and then prints out the contents of the database:
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
import anydbm
|
|
|
|
|
|
|
|
# Open database, creating it if necessary.
|
|
|
|
db = anydbm.open('cache', 'c')
|
|
|
|
|
|
|
|
# Record some values
|
|
|
|
db['www.python.org'] = 'Python Website'
|
|
|
|
db['www.cnn.com'] = 'Cable News Network'
|
|
|
|
|
|
|
|
# Loop through contents. Other dictionary methods
|
|
|
|
# such as .keys(), .values() also work.
|
|
|
|
for k, v in db.iteritems():
|
|
|
|
print k, '\t', v
|
|
|
|
|
|
|
|
# Storing a non-string key or value will raise an exception (most
|
|
|
|
# likely a TypeError).
|
|
|
|
db['www.yahoo.com'] = 4
|
|
|
|
|
|
|
|
# Close when done.
|
|
|
|
db.close()
|
|
|
|
\end{verbatim}
|
|
|
|
|
1998-04-07 19:08:02 -03:00
|
|
|
|
1999-04-05 16:46:21 -03:00
|
|
|
\begin{seealso}
|
1999-04-15 12:11:40 -03:00
|
|
|
\seemodule{dbhash}{BSD \code{db} database interface.}
|
1999-04-05 16:46:21 -03:00
|
|
|
\seemodule{dbm}{Standard \UNIX{} database interface.}
|
|
|
|
\seemodule{dumbdbm}{Portable implementation of the \code{dbm} interface.}
|
|
|
|
\seemodule{gdbm}{GNU database interface, based on the \code{dbm} interface.}
|
|
|
|
\seemodule{shelve}{General object persistence built on top of
|
|
|
|
the Python \code{dbm} interface.}
|
|
|
|
\seemodule{whichdb}{Utility module used to determine the type of an
|
|
|
|
existing database.}
|
|
|
|
\end{seealso}
|