On 2015-12-03, Terry Reedy wrote: > fileinput is an ancient module that predates iterators (and generators) > and context managers. Since by 2.7 open files are both context managers > and line iterators, you can easily write your own multi-file line > iteration that does exactly what you want. At minimum: > > for file in files: > with codecs.open(file, errors='ignore') as f > # did not look up signature, > for line in f: > do_stuff(line) > > To make this reusable, wrap in 'def filelines(files):' and replace > 'do_stuff(line)' with 'yield line'.
I like fileinput because if the file list is empty, it reads from stdin instead (so I can pipe something else's output into it). Unfortunately, the fix I got elsewhere in this thread doesn't seem to work for that! -- Science is what we understand well enough to explain to a computer. Art is everything else we do. --- Donald Knuth -- https://mail.python.org/mailman/listinfo/python-list