2016-03-11 156 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找到。

相關問題