Script parse output screen but cant get desired output new file!.

Chuck Amadi chuck at smtl.co.uk
Mon Jun 14 18:06:48 CEST 2004


On Thu, 2004-06-10 at 01:03, David Fisher wrote:
> chuck amadi <chuck.amadi at ntlworld.com> writes:
> > fp = open("/home/chuck/pythonScript/testbox")
> >  mbox = mailbox.UnixMailbox(fp, email.message_from_file)
> > for mail in mbox:
> >         print mail['Subject']
> >         print mail.get_content_type()#text/plain
> >         print mail.get_payload()
> If your going to use the UnixMailbox in two different loops, you'll
> need to reinitalize it.  Just call:
> 
> fp = open("/home/chuck/pythonScript/testbox")
> mbox = mailbox.UnixMailbox(fp, email.message_from_file)
> 
> again before you use 'mbox' again.  Otherwise the file pointer is
> still pointing at the end of the file which is why you get nothing the
> second time.  Or alternately, just to be more confusing :), use:
> 
> for mail in mailbox.UnixMailbox(open("/home/chuck/pythonScript/testbox"), \
>                                 email.message_from_file):
>         print mail['Subject']
>         print mail.get_content_type()#text/plain
>         print mail.get_payload()
> 
> Which does it all in one stroke.
> 
> Oh, minor nitpick.  open(filename) is depredicated I believe.  The new
> prefered (for now :P) usage is file(filename).  Which makes sense
> since it returns a file object not an 'open' object
> 
> ><{{{*>

By the way list is there a better way than using the readlines() to
parse the mail data into a file , because Im using
email.message_from_file it returns 
all the data i.e reads one entire line from the file , headers as well
as just the desired body messages .

fp = file("/home/chuck/pythonScript/testbox")
mb = mailbox.UnixMailbox(fp,
email.message_from_file)                          


mailout = file("/home/chuck/pythonScript/SurveyResults.txt","w")
for mail in fp.readlines():
    mailout.write(mail)

Something like this>

for mail in mb:
        body = mail.get_payload()
	mailout.write(body) # write only the body messages to SurveyResults.txt

Cheers if the is a better way I can't get my head round how I can print
mail ( 
only the body messages) to screen and the entire mail headers and body
to the new file.

Hi have any one got any suggstions to my script I can parse the email
body messages to screen but I want the same desired effect to save to a
new file.I have tried a few things to no effect.







More information about the Python-list mailing list