In Python, overriding sys.excepthook makes it possible to modify what is printed to stderr when there is an exception:
>>> import sys >>> sys.excepthook = lambda _, x, __: print('ERROR:', x) >>> a ERROR: name 'a' is not defined I'm looking for a similar functionality for stdout also. Is it possible to do this in Python?
>>> type(5) <class 'int'> >>> # some magical operations >>> type(5) <sinif 'tamsayi'> Here <sinif 'tamsayi'> is translation of original output to Turkish. This is just an example and I'm not trying to modify type's output specifically. I'm looking for a way to inspect what is going to written to stdout and modify it according to my needs just like in the case of what I've shown for stderr.
sys.stdoutto any file-like object. The originalstdoutwill be kept insys.__stdout__.sysbefore asking this. Just by looking at the name I can say that this is what I'm looking for most probably.