anydbm is a generic interface to variants of the DBM database -- dbhash (requires bsddb), gdbm, or dbm. If none of these modules is installed, the slow-but-simple implementation in module dumbdbm will be used.
filename[, flag[, mode]]) |
If the database file already exists, the whichdb module is used to determine its type and the appropriate module is used; if it does not exist, the first module listed above that can be imported is used.
The optional flag argument can be
'r'
to open an existing database for reading only,
'w'
to open an existing database for reading and writing,
'c'
to create the database if it doesn't exist, or
'n'
, which will always create a new empty database. If not
specified, the default value is 'r'
.
The optional mode argument is the Unix mode of the file, used
only when the database has to be created. It defaults to octal
0666
(and will be modified by the prevailing umask).
The object returned by open() supports most of the same functionality as dictionaries; keys and their corresponding values can be stored, retrieved, and deleted, and the has_key() and keys() methods are available. Keys and values must always be strings.
The following example records some hostnames and a corresponding title, and then prints out the contents of the database:
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()
See Also:
db
database interface.
dbm
interface.
dbm
interface.
dbm
interface.