On Nov 22, 1:17 pm, braver <[EMAIL PROTECTED]> wrote: > Ruby has iterators and generators too, but it also has my good ol' > f.eof(). I challenge the assumption here of some majectically Python-
Ruby doesn't have the good ol' eof. Good old eof tests a single flag and requires a pre read(). Ruby's eof blocks and does buffering (and this is a very strong technical statement). I find it ok that ruby subverts the good old eof, but it's unaceptable for python to do so. Besides, it's probable that your code could work with the following construct. def try_read(f): line = f.readline() eof = (line == '') return (line, eof) def xor(a, b): return a and not b or b and not a count = 0 while True: next_line, eof = try_read(f) if not eof: count += 1 line = next_line process(line) if xor(count % 1000 == 0, eof): summarize(count, line) if eof: break > wayist spirit forbidding Python to have f.eof(), while Ruby, which has > all the same features, has it. Saying "it's not the Python way" is > not a valid argument. Yes, it is. > > Cheers, > Alexy -- http://mail.python.org/mailman/listinfo/python-list