# 7.9 `dbhash` -- DBM-style interface to the BSD database library

Availability: Unix, Windows.

The `dbhash` module provides a function to open databases using the BSD `db` library. This module mirrors the interface of the other Python database modules that provide access to DBM-style databases. The `bsddb` module is required to use `dbhash`.

This module provides an exception and a function:

`error`
  Exception raised on database errors other than `KeyError`. It is a synonym for `bsddb.error`.

`open` (path, flag[, mode])
  Open a `db` database and return the database object. The path argument is the name of the database file.

  The flag argument can be `'r'` (the default), `'w'`, `'c'` (which creates the database if it doesn't exist), or `'n'` (which always creates a new empty database). For platforms on which the BSD `db` library supports locking, an "`l`" can be appended to indicate that locking should be used.

  The optional mode parameter is used to indicate the Unix permission bits that should be set if a new database must be created; this will be masked by the current umask value for the process.

See Also:

Module `anydbm`:
  Generic interface to `dbm`-style databases.

Module `bsddb`:
  Lower-level interface to the BSD `db` library.

Module `whichdb`:
  Utility module used to determine the type of an existing database.

- 7.9.1 Database Objects