python如何捕获PyErr_Print()(或打印到stdout / stderr的任何内容)的输出?

python如何捕获PyErr_Print()(或打印到stdout / stderr的任何内容)的输出?

在 Python 代码中,定义一个支持 write() 方法的对象。 将此对象赋值给 sys.stdoutsys.stderr。 调用 print_error 或者只是允许标准回溯机制生效。 在此之后,输出将转往你的 write() 方法所指向的任何地方。

做到这一点的最简单方式是使用 io.StringIO 类:

>>> import io, sys
>>> sys.stdout = io.StringIO()
>>> print("foo")
>>> print("hello world!")
>>> sys.stderr.write(sys.stdout.getvalue())
foo
hello world!
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » python如何捕获PyErr_Print()(或打印到stdout / stderr的任何内容)的输出?