Need help in extracting lines from word using python

razinzamada at gmail.com razinzamada at gmail.com
Wed Mar 20 02:13:42 EDT 2013


Thanks steven

On Tuesday, March 19, 2013 8:11:22 PM UTC+5:30, Steven D'Aprano wrote:
> 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




More information about the Python-list mailing list