"Stefan Lesicnik" <ste...@lsd.co.za> wrote

I have a file that has text in a certain format. Lets assume

'''
name: stefan
id: 12345
color: blue
name: joe
id: 54321
color: red
'''

The format is predictable. I understand for non predictable text, you would
have to use pyparser or the like to build a match.

There are lots of ways to do this, I might use a class which takes
an open file and reads the three lines and extracts the data as
part of the contructor... Untested pseudo code:

class Item(object):
   def __init__(self, aFile):
       data = aFile.readline().strip().split(:)
       setattr(self, data[0], data[1])

items = []
f = open('myfile.txt')
while f:
    items.append(Item(f))


This of course breaks my own rule about not having objects for data only
but the intelligent constructor makes it worth it. :-)

Also there might well be other things you want to do to these elements
having collected them...

The problem being i dont really do something per line? I would like to say
something like, for line until the next 'name', make that 1 element.
So i would like to then have a list or dict (this probably makes sense for a dict) with that group. I would then probably split it into various elements.

Just one alternative...


--
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/


_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to