Question: Best Practice? (module 'shelve')
Thomas Ploch
Thomas.Ploch at gmx.net
Tue Jan 9 19:51:58 EST 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)
self.email = email
self.dbName = dbName
if self.email:
self.emailList = []
self.emailList.append(
re.compile(r'[a-zA-Z0-9_.]+@\w+\.\w+'))
def match(self, src, url):
self.matchDict = {}
self.matchDict[url] = {}
# The next 2 functions just add stuff to self.matchDict
if self.email:
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.openDB(self.dbName)
self.db[url] = self.matchDict[url]
self.db.close()
# 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 = shelve.open('textmatch.db', flag=modeflag)
else:
self.db = shelve.open(dbName, flag=modeflag)
More information about the Python-list
mailing list