【发布时间】:2021-01-08 10:11:43
【问题描述】:
在 Python 中,覆盖 sys.excepthook 可以在出现异常时修改打印到 stderr 的内容:
>>> import sys
>>> sys.excepthook = lambda _, x, __: print('ERROR:', x)
>>> a
ERROR: name 'a' is not defined
我也在为stdout 寻找类似的功能。在 Python 中可以做到这一点吗?
>>> type(5)
<class 'int'>
>>> # some magical operations
>>> type(5)
<sinif 'tamsayi'>
这里的<sinif 'tamsayi'> 是将原始输出翻译成土耳其语。这只是一个示例,我并不想专门修改type 的输出。我正在寻找一种方法来检查将要写入stdout 的内容并根据我的需要对其进行修改,就像我为stderr 展示的内容一样。
【问题讨论】:
-
你为什么不直接使用记录器?
-
@jonrsharpe 看起来很相关,我会检查一下。
-
您可以将
sys.stdout重新分配给任何类似文件的对象。原来的stdout会保存在sys.__stdout__中。 -
@Qiu 我应该在问这个之前检查
sys。光看名字我就可以说这很可能是我要找的。span>
标签: python python-3.x stdout