#!/usr/bin/env python
import shelve
FILE_NAME = "/tmp/testDB"
def main():
#
# flag
# 'r' Open existing database for reading only (default)
# 'w' Open existing database for reading and writing
# 'c' Open database for reading and writing, creating it if it doesn't exist
# 'n' Always create a new, empty database, open for reading and writing
#
# writeback
# By default modified objects are written only when assigned to the shelf.
# If the optional writeback parameter is set to True, all entries accessed are also cached
# in memory, and written back on sync() and close()
#
hsh = shelve.open( FILE_NAME, flag='c', writeback=False)
hsh[ 'a'] = 'Hello World'
hsh.close()
hsh = shelve.open( FILE_NAME, flag='r')
for k in list( hsh.keys()):
print( "key: %s, value: %s" % ( k, hsh[ k]))
if __name__ == "__main__":
main()