【发布时间】:2013-07-22 04:52:15
【问题描述】:
我目前正在调用一个外部 c++ 程序,该程序使用 subprocess.check_output 生成大量输出,并将标准输出保存到日志文件中。但是 c++ 程序可能需要很长时间才能完成,但我想在它完成之前查看标准输出,就像我通过 bash 命令行直接执行 c++ 程序一样。
当然,我可以通过使用 fstream 直接修改我的 c++ 程序来保存输出来完成此操作。但是我想知道python中是否有任何可以拦截标准输出的解决方案。
提前谢谢你!
【问题讨论】:
-
你知道
tee命令吗? -
@hivert 当然我可以在调用c++程序的命令中添加'tee'。但我的问题是关于如何在 Python 中实现这一点。 @Frodon 回答了这个问题。原来我在处理输出时非常习惯使用
subprocess.check_output,但完全不知道subprocess.call的stdout=logfile。
标签: python bash subprocess stdout