Luis N wrote: > On Dec 16, 2007 10:17 PM, jon vs. python <[EMAIL PROTECTED]> 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 > See my post re use of readline instead of read
Also note that when testing booleans you don't need == True. Just write if line.find(2) != -1 or show_ones: _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor