xreadlines (was Re: while true: !!!)

Alex Martelli aleaxit at yahoo.com
Thu Dec 14 05:14:38 EST 2000


"Greg Jorgensen" <gregj at pobox.com> wrote in message
news:f3%Z5.146409$U46.4768601 at news1.sttls1.wa.home.com...
    [snip]
> There is the fileinput module, which also solves the "ugly infinite loop"
> problem that seems to bother some people:

Or rather, it WOULD solve it, *IF*...:


> import fileinput
>
> for line in fileinput.input(filename):
>     print line
>
> The fileinput module can iterate over a single file, a list of files, or

...if it was able to iterate over already-opened file-like objects, rather
than having to open actual files itself, it WOULD conceptually solve it
all.  I wonder how hard it would be to generalize fileinput in this way --
probably not very (the in-place-rewriting option would be incompatible
with having already-opened file-like objects in the list, of course).

> stdin. I've used fileinput to go through big lists of files (10,000+ email
> messages) and it works great. It doesn't appear to do any buffering
> itself--it uses file.readline() to read the files.

If this was a performance problem, it could of course also be fixed
in a future fileinput version without changing code that uses it (again,
in-place-rewriting would probably have to inhibit the optimization,
although that isn't entirely clear).


Alex






More information about the Python-list mailing list