-1

我目前正在调用一个外部 c++ 程序,该程序使用 subprocess.check_output 生成大量输出,并将标准输出保存到日志文件中。但是 c++ 程序可能需要很长时间才能完成,但我想在它完成之前查看标准输出,就像我通过 bash 命令行直接执行 c++ 程序一样。

当然,我可以通过使用 fstream 直接修改我的 c++ 程序来保存输出来实现这一点。但我想知道python中是否有任何可以拦截标准输出的解决方案。

先感谢您!

4

1 回答 1

1

如果将输出保存到日志文件中,为什么不使用subprocess.callwith stdoutset 打开的日志文件?

with open("logfile") as logfile:
  subprocess.call("run_my_program arg1 arg2", shell=True, stdout=logfile)

然后一个简单tail -f logfile的将在程序执行期间向您显示日志的内容。

于 2013-07-23T08:23:52.200 回答