"Jason Conner" <[EMAIL PROTECTED]> wrote

building a program that will take a text file, search for a string in that text file. Once it finds the string its looking for, I want to put the next
five lines of text into a variable. Here's what I have so far:

def loadItem(self, objectToLoad):
   x = 0
   wordList = []
   fobj = file()

This does nothing. file() is just an alias for open()


   fobj.open("itemconfig.txt", 'rU')

   for line in fobj.readline():

And you can iterate over the file itself so this could become:

for line in file(("itemconfig.txt", 'rU'):


       if line == objectToLoad:
           while x != 5
               for word in line.split():
                   wordList.append(word)
                   x += 1

This isn't quite what you said above in that you didn't mention
storing the individual words...


   thing = item(wordList[0], wordList[1], wordList[2], wordList[3],
wordList[4])

But this could just be:

   thing = line.split[:5]   # use slicing to get first 4 items

   itemList.append(thing)

or even make it all one line here...

Now to get the next 4 lines as well set a flag/counter. say linecount.
Set it to 0 at the top then

linecount = 0
for line in file("itemconfig.txt", 'rU'):
  if line == objectToLoad or linecount > 0:
if linecount == 0: linecount = 5 # set linecount on first line
      itemList.append(line.split()[:5])
      linecount -= 1


HTH,

--
Alan Gauld
Author of the Learn to Program web site
http://www.freenetpages.co.uk/hp/alan.gauld

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

Reply via email to