How do I override file.write() under Python 3?
Posted
by Sorin Sbarnea
on Stack Overflow
See other posts from Stack Overflow
or by Sorin Sbarnea
Published on 2010-06-15T14:23:15Z
Indexed on
2010/06/15
15:52 UTC
Read the original article
Hit count: 168
python-3.x
Below works on Python 2.6 but on Python 3.x it doesn't:
old_file_write = file.write
class file():
def write(self, d):
if isinstance(d, types.bytes):
self.buffer.write(d)
else:
old_file_write(d)
# ... do something like f = open("x") f.write("...")
The problems is that with Python 3.x the first like will generate an error:
NameError: name 'file' is not defined
How can I make this work on Python 3.x?
PS. In fact I'm looking for a solution that will work on both versions.
© Stack Overflow or respective owner