我用 Python 編寫了一些程式來列印一些訊息。我希望該程式轉到後台並將其訊息列印在文件中。所以我在 bash 中寫道:python program > message &
。問題:僅當我中斷程式時才會出現該訊息(使用 cat 或 vi)。有人可以解釋一下問題出在哪裡以及是否有簡單的解決方案?
答案1
當 Python 的輸出不是 tty 時,它使用完全緩衝。
使用python -u
-- 運行程序,這將使 python3 中的 stdout 和 stderr 以及 python2 中的 stdin 無緩衝。
請注意,這與後台運行的程式無關,而是與它的 stdout 不是 tty 這一事實有關。
答案2
沖洗可以幫助你嗎?我希望連結到其他網站不是問題。看https://stackoverflow.com/questions/230751/how-to-flush-output-of-print-function