On Tue, 19 Mar 2013 07:20:57 -0700, razinzamada wrote: > I'm currently trying to extract some data between 2 lines of an input > file using Python. the infile is set up such that there is a line > -START- where I need the next 10 lines of code if and only if the -END- > condition occurs before the next -START-. The -START- line occurs many > times before the -END-. Heres a general example of what I mean: > > blah > blah > -START- > 10 lines I DONT need > blah > -START- > 10 lines I need > blah > blah > -END- > blah > blah > -START- > 10 lines I dont need > blah > -START- > > .... and so on and so forth
[...] > heres the code I have for printing the -START- + 10 lines: > > in = open('input.log') No it is not. "in" is a reserved word in Python, that code cannot possibly work, it will give a SyntaxError. Try this code. Untested but it should do want you want. infile = open('input.log') outfile = open('output.txt', 'a') # Accumulate lines between START and END lines, ignoring everything else. collect = False # Initially we start by ignoring lines. for line in infile: if '-START-' in line: # Ignore any lines already seen, and start collecting. accum = [] collect = True elif '-END-' in line: # Write the first ten accumulated lines. outfile.writelines(accum[:10]) # Clear the accumulated lines. accum = [] # and stop collecting until the next START line collect = False elif collect: accum.append(line) outfile.close() infile.close() -- Steven -- http://mail.python.org/mailman/listinfo/python-list