On 01/08/15 00:59, ltc.hots...@gmail.com wrote:

for line in fh:
   line2 = line.strip()
   line3 = line2.split()
   line4 = line3[0]

→→Apparently, the data content in the  file is lost from  the address sort 
function to line2? :

It is not lost, it is an empty line.

In [47]: print line2.split()
[]

split has returned no content.
The line must have been empty (or full of whitespace
which strip() removed).

In [48]: print line2
In [49]: print line.strip()

Again it shows an empty line.

In [51]: print addresses
set(['1.0', 'sou...@collab.sakaiproject.org;', 'Jan', 'mail.umich.edu', 'Innocen
t', '0.0000', 'CMU', 'frankenstein.mail.umich.edu', '0.8475', 'from', 'source@co
llab.sakaiproject.org', '05', '<200801051412.m05eciah010...@nakamura.uits.iupui.
edu>', 'flawless.mail.umich.edu', '5', 'nakamura.uits.iupui.edu:', 'shmi.uhi.ac.
uk', '7bit', 'text/plain;', '<sou...@collab.sakaiproject.org>;', 'Sat,', 'nakamu
ra.uits.iupui.edu', 'paploo.uhi.ac.uk', 'FROM', 'holes.mr.itd.umich.edu', '(from
', '<postmas...@collab.sakaiproject.org>', '[sakai]', 'stephen.marqu...@uct.ac.z
a', 'Sat'])

But this is odd since it shows the set containing the full line which suggests you maybe did an add(line) instead of add(line4) at some point?

You have removed the code that tested for the first
word being "From". You should put that check back in your code.

If you do this it should fix the IndexError problem too,
since empty lines will not start with From

ie your loop should look like

for line in fh:
   if line.startswith('From'):
      # the loop body as it currently is


--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.amazon.com/author/alan_gauld
Follow my photo-blog on Flickr at:
http://www.flickr.com/photos/alangauldphotos


_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to