David W. Lambert <lamber...@corning.com> added the comment:

My file class extends text files with seek or read through condition or 
pattern, providing an awk like pattern{action} task separation.

If I allow a pre-existing stream into my constructor (subprocess.Popen 
my favorite) I still suffer the same garbage collection problem.

class file(io.TextIOWrapper):
    'add condition matching to a stream'
    def __init__(self,stream_or_name):
        a = stream_or_name
        buffer = (a.buffer if isinstance(a, io.TextIOWrapper)
               else io.BufferedReader(io.FileIO(a, 'r')))
        super().__init__(buffer)

Use this on a stream whose reference count goes to zero causes
ValueError: I/O operation on closed file.  Increasing stream's reference 
count by saving it with the object corrects it.

I appreciate your considerations.
Dave.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue5513>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to