相关疑难解决方法(0)

在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
查看次数

为什么tf.Print()不会在tensorflow中打印

以下代码不会给出任何错误,但也不会打印张量.

import tensorflow as tf
import numpy as np

# Some tensor we want to print the value of
x = tf.placeholder(tf.float32, shape=[2, 2, 2])
a = np.array([[[1.,1.], [1.,1.]], [[2.,2.], [2.,2.]]])

m = tf.Print(x,[x])

with tf.Session() as sess:
    sess.run(tf.initialize_all_variables())
    m_eval = m.eval(session=sess,feed_dict={x: a})
Run Code Online (Sandbox Code Playgroud)

编辑:在bgshi的回复之后,我发现在iPython控制台中,代码确实打印了张量值.但我正在使用iPython笔记本.有没有办法让它显示在笔记本上?

python tensorflow

9
推荐指数
1
解决办法
7215
查看次数

标签 统计

python ×2

c++ ×1

tensorflow ×1