diff options
| author | Jack Jansen <jack.jansen@cwi.nl> | 1995-10-23 13:59:53 +0000 | 
|---|---|---|
| committer | Jack Jansen <jack.jansen@cwi.nl> | 1995-10-23 13:59:53 +0000 | 
| commit | 97157798102644c80ecd5a7103de3f68611bf964 (patch) | |
| tree | 68ad268239d012a1cdea14b64a573be4fbb0257c | |
| parent | 173c8bd310f30007ac6535e58b047fe2b599adac (diff) | |
| download | cpython-git-97157798102644c80ecd5a7103de3f68611bf964.tar.gz | |
Added class MHMailbox
Added optional third parameter to seek.
| -rwxr-xr-x | Lib/mailbox.py | 40 | 
1 files changed, 35 insertions, 5 deletions
diff --git a/Lib/mailbox.py b/Lib/mailbox.py index e93512a1c8..8a54b46ea0 100755 --- a/Lib/mailbox.py +++ b/Lib/mailbox.py @@ -4,6 +4,8 @@  # Jack Jansen, CWI, March 1994.  #  import rfc822 +import os +import regex  class _Mailbox:  	def __init__(self, fp): @@ -59,8 +61,13 @@ class _Subfile:  	def tell(self):  		return self.pos - self.start -	def seek(self, pos): -		self.pos = pos + self.start +	def seek(self, pos, whence=0): +	        if whence == 0: +		    self.pos = self.start + pos +		elif whence == 1: +		    self.pos = self.pos + pos +		elif whence == 2: +		    self.pos = self.stop + pos  	def close(self):  		pass @@ -103,14 +110,37 @@ class MmdfMailbox(_Mailbox):  				self.fp.seek(pos)  				return +class MHMailbox: +    def __init__(self, dirname): +	pat = regex.compile('^[0-9][0-9]*$') +	self.dirname = dirname +	files = os.listdir(self.dirname) +	self.boxes = [] +	for f in files: +	    if pat.match(f) == len(f): +		self.boxes.append(f) + +    def next(self): +	if not self.boxes: +	    return None +	fn = self.boxes[0] +	del self.boxes[0] +	fp = open(os.path.join(self.dirname, fn)) +	return rfc822.Message(fp) +	     +      if __name__ == '__main__':  	import posix  	import time  	import sys  	import string -	mbox = '/usr/mail/'+posix.environ['USER'] -	fp = open(mbox, 'r') -	mb = UnixMailbox(fp) +##	mbox = '/usr/mail/'+posix.environ['USER'] +##	fp = open(mbox, 'r') +##	mb = UnixMailbox(fp) + +	mbox = posix.environ['HOME']+'/Mail/inbox' +	mb = MHMailbox(mbox) +	  	msgs = []  	while 1:  		msg = mb.next()  | 
