python - 打印到stdout并将输出重定向到文件

时间:2016-03-11 13:28:34

标签: python redirect stdout

我可以在终端上运行我的python脚本并在 stdout 上获取打印结果,例如

python myprog.py

或只是将其重定向到文件:

python myprog.py > out.txt

我的问题是如何同时做两种解决方案。 我的linux经验会告诉我类似的事情:

python myprog.py |& tee out.txt

这没有我预期的行为,在程序结束时即时打印而不是一次性打印。

所以我想要的(首选而不更改python代码)与python myprog.py(即时打印)的行为相同,但也会将输出重定向到文件。

实现这一目标的最简单方法是什么?

2 个答案:

答案 0 :(得分:0)

你想使用'tee'。 stdbuf -oL python mycode.py | tee out.txt

答案 1 :(得分:0)

晚会(我的最后一个答案很糟糕),但你可以查看logging库。有关更丰富的文档,请参阅here,但其要点是为日志库使用两个输出。可以找到类似的问题here