[Tutor] Nested, line by line, file reading
Luis N
globophobe at gmail.com
Sun Dec 16 14:38:36 CET 2007
On Dec 16, 2007 10:17 PM, jon vs. python <jonvspython at gmail.com> wrote:
> Hi everyone,
> I have a file with this content:
>
> "1
> 1
> 1
> 1
> 1
> 1
> 1
> 2
> 1
> 1"
>
> I wanted a little script that would print the line containing "2" and every
> line containing "1" after it. I've tried this:
>
> >>> def p():
> f = file("prueba.txt",'r')
> for startline in f.read():
> if startline.find("2") != -1:
> print startline
> for endline in f.read():
> if endline.find("1") != -1:
> print endline
> break
> f.close()
>
>
> >>> p()
> 2
>
> I found a way for doing it.
>
> But still I don't really understand why I don't get two "1" lines printed.
> It seems that every line is read in "for startline f.read()" so "for endline
> in f.read()" will start reading but find no data, am I right?
>
> Thanks, Jon.
>
Try something like:
show_ones = False
for line in f.read():
if line.find(2) != -1 or show_ones == True:
print line
show_ones = True
More information about the Tutor
mailing list