L
lambertdw
'''
A python 3 question.
Presume this code is in file p.py.
The program fails.
$ python3 p.py
...
ValueError: I/O operation on closed file.
Removing the comment character to increase the stream
reference count fixes the program, at the expense of
an extra TextIOWrapper object.
Please, what is a better way to write the class with
regard to this issue?
'''
import re
import io
class file(io.TextIOWrapper):
'''
Enhance TextIO. Streams have many sources,
a file name is insufficient.
'''
def __init__(self,stream):
#self.stream = stream
super().__init__(stream.buffer)
def seek_pattern(self,pattern):
'''
A motivational method, otherwise inconsequential to the
problem.
'''
search = re.compile(pattern).search
while True:
line = next(self)
if (not line) or search(line):
return line
print(file(open('p.py')).read())
A python 3 question.
Presume this code is in file p.py.
The program fails.
$ python3 p.py
...
ValueError: I/O operation on closed file.
Removing the comment character to increase the stream
reference count fixes the program, at the expense of
an extra TextIOWrapper object.
Please, what is a better way to write the class with
regard to this issue?
'''
import re
import io
class file(io.TextIOWrapper):
'''
Enhance TextIO. Streams have many sources,
a file name is insufficient.
'''
def __init__(self,stream):
#self.stream = stream
super().__init__(stream.buffer)
def seek_pattern(self,pattern):
'''
A motivational method, otherwise inconsequential to the
problem.
'''
search = re.compile(pattern).search
while True:
line = next(self)
if (not line) or search(line):
return line
print(file(open('p.py')).read())