FW: Printing to a file and a terminal at the same time

Lie Ryan lie.1296 at gmail.com
Thu Oct 12 06:43:14 EDT 2017


It wouldn't be too difficult to write a file object wrapper that emulates tee, for instance (untested):
class tee(object):
 def __init__(self, file_objs, autoflush=True):
 self._files = file_objs
 self._autoflush = autoflush
 def write(self, buf):
 for f in self._files:
 f.write(buf)
 if self._autoflush:
 self.flush()
 def flush(self):
 for f in self._files:
 f.flush()
use like so:
 sys.stdout = tee([sys.stdout, open("myfile.txt", "a")])
Another approach is by bsandrow (https://github.com/bsandrow/pytee), which uses fork and os.pipe(), this more closely resembles what the actual tee command are actually doing.


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /