getting fileinput to do errors='ignore' or 'replace'?
Adam Funk
a24061 at ducksburg.com
Thu Dec 3 14:21:41 EST 2015
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
More information about the Python-list
mailing list