将stdout重定向到ostream

时间:2018-09-07 10:51:11

标签: c++ windows stream stdout

是否可以将stdout (不是cout!)重定向到流(ostream(不是文件!)< / strong>

为什么?我正在将python解释器集成到我的应用程序中,并希望捕获python代码中的print()个调用。

我可以通过使用cout来重定向rdbuf(),但是来自Python的printf()print()不能重定向,因为它转到stdout而不是cout

1 个答案:

答案 0 :(得分:0)

在Linux上,您只需在python脚本的持续时间内将STDOUT临时重定向到一个临时文件即可。

在python调用结束时,您可以读取临时文件的内容,然后转储该文件。

我很确定Windows将具有类似的机制。

这是尝试进行一些RAII清理所有把手的第一步。

ValueError Traceback (most recent call last) in ()
22 #decoded_imgs = decoder.predict(encoded_imgs)
23 #encoded_imgs=reconstructed
---> 24 decoded_imgs=decoder.predict_generator(reconstructed)
25
26

~/VirtualEnvs/deep/lib/python3.5/site-packages/keras/legacy/interfaces.py 
in wrapper(*args, **kwargs)
89 warnings.warn('Update your ' + object_name + 90 ' call to the Keras 2 
API: ' + signature, stacklevel=2)
---> 91 return func(*args, **kwargs)
92 wrapper._original_function = func
93 return wrapper

~/VirtualEnvs/deep/lib/python3.5/site-packages/keras/engine/training.py in 
predict_generator(self, generator, steps, max_queue_size, workers, 
use_multiprocessing, verbose)
1517 workers=workers,
1518 use_multiprocessing=use_multiprocessing,
-> 1519 verbose=verbose)

~/VirtualEnvs/deep/lib/python3.5/site- 
 packages/keras/engine/training_generator.py in predict_generator(model, 
 generator, steps, max_queue_size, workers, use_multiprocessing, verbose)
401 steps = len(generator)
402 else:
   --> 403 raise ValueError('steps=None is only valid for a generator'
   404 ' based on the keras.utils.Sequence class.'
  405 ' Please specify steps or use the'

  ValueError: steps=None is only valid for a generator based on the 
  keras.utils.Sequence class. Please specify steps or use the 
  keras.utils.Sequence class.