I have tried, f = open('TEST1.MLC') fields = {} for line in f: the_line = line.split() if the_line: if the_line[0] == 'Field': field = int(the_line[-1]) elif the_line[0] == 'Leaf': fields[field] = the_line[-1]
which, sort of works, but it overwrites each value. On Nov 12, 2007 6:55 PM, Alan Gauld <[EMAIL PROTECTED]> wrote: > The lesson here is not to try to do two things at once... > > > file.next() > > TypeError: descriptor 'next' of 'file' object needs an argument > > OK, My algorithm was meant to be pseudo code so file was > not intended to be taken literally, its just a marker for an open > file object. > > > And, it is true that I am trying to build a list and not overwrite > > the value. > > OK, That adds a bit more tweaking... > > >> Personally I'd use a flag to detect when field had > >> been found and set - ie set field to None and then > >> test for that changing, then test for Leaf as you do. > > That was before I went back to testing my own project.... > > >> So I think your algorithm should be > >> > >> for line in file > >> if 'Field' in line: > >> field = int(line.split()[-1]) > > and this was after - with no flag anywhere in sight! Oops. > > I intended the if test to include a check for field == None... > > if field == None and 'Field' in line:.... > > >> elif 'Leaf' in line: > >> fields[field] = line.split()[-1] > >> else: file.next() > >> > >> But I think there's another problem in that you are > >> then overwriting the value of Leaf when I think you > >> are trying to build a list? > > So we need to create an empty list entry where we > define field and then append here, so my pseudo > code now becomes: > > f = open('foo.dat') > for line in f: > if field == None and 'Field' in line: > field = int(line.split()[-1]) > fields[field] = [] > elif 'Leaf' in line: > fields[field].append(line.split()[-1]) > else: f.next() > > still untested I'm afraid, so it still may not work. > > HTH, > > Alan G. > > > > _______________________________________________ > Tutor maillist - Tutor@python.org > http://mail.python.org/mailman/listinfo/tutor > _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor