小编Use*_*ool的帖子

在python中,如何将stdout从c ++共享库捕获到变量

由于某些其他原因,我使用的c ++共享库将一些文本输出到标准输出.在python中,我想捕获输出并保存到变量.关于重定向标准输出有许多类似的问题,但在我的代码中不起作用.

示例:禁止在库外调用模块的输出

1 import sys
2 import cStringIO
3 save_stdout = sys.stdout
4 sys.stdout = cStringIO.StringIO()
5 func()
6 sys.stdout = save_stdout
Run Code Online (Sandbox Code Playgroud)

在第5行,func()将调用共享库,共享库生成的文本仍然输出到控制台!如果改变func()打印"你好",它的工作原理!

我的问题是:

  1. 如何将c ++共享库的stdout捕获到变量
  2. 为什么使用StringIO,无法捕获共享库的输出?

c++ python

18
推荐指数
3
解决办法
7908
查看次数

标签 统计

c++ ×1

python ×1