2016-03-11 157 views
2

我可以在终端上运行我的python脚本,并在stdoutpython - 打印到stdout并将输出重定向到文件

python myprog.py

或简单地将其重定向到一个文件:

python myprog.py > out.txt

我的问题是我怎么能在同一时间做这两个解决方案。 我的Linux的经验会告诉我是这样的:

python myprog.py |& tee out.txt

这是不是有我所期望的行为,打印对飞,而不是一次全部程序结束时。因此,我想要的(首选不改变python代码)与python myprog.py(即时打印)相同,但也会将输出重定向到文件。

完成此操作的最简单方法是什么?

回答

0

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

+1

我试过,如上所述。这只会在脚本结束时将结果放在标准输出中,我希望能够立即更新stdout! –

+0

尝试将stdbuf -oL放在python前面,就像我的更新一样。有关说明,请参阅手册页http://linux.die.net/man/1/stdbuf – Oli

0

晚会(我最后的回答不好),但你可以看看logging库。有关更多充足的文档,请参阅here,但其要点是为日志记录库使用两个输出。类似的问题可以在here找到。

相关问题