Question: Best Practice? (module 'shelve')

Thomas Ploch Thomas.Ploch at
Wed Jan 10 01:51:58 CET 2007

Hello fellows,

I just wanted to know, if there is any best practice concerning
following code:

import re, shelve

class TextMatcher:
    def __init__(self, patterns, email=False, dbName='textmatch.db'):
        self._initPatterns(patterns) = email
        self.dbName = dbName
            self.emailList = []

    def match(self, src, url):
        self.matchDict = {}
        self.matchDict[url] = {}
	# The next 2 functions just add stuff to self.matchDict
            self._addEmails(src, url)
        self._addPatterns(src, url)
	# Is it good practice to open, write and close the db straight
	# away? Or is it better to leave it open until the whole program
	# has finished, and close it then?
        self.db[url] = self.matchDict[url]
	# I want to del the matchDict each time so it can't grow big.
	# Is this good, or should it be left open, too?
        del self.matchDict

    def openDB(self, dbName=None, modeflag='c'):
        if dbName == None:
            self.db ='textmatch.db', flag=modeflag)
            self.db =, flag=modeflag)

More information about the Python-list mailing list