我在python中打印語句。我執行我的腳本如下所示:Python打印語句被緩衝>輸出重定向
python script.py > out.log nohup &
打印語句並不都是沒有顯示在out.log
但該計劃被整理好。
這行代碼是在.sh
文件 我做./script.sh
更新執行:日誌確實讓所有但直到行的某些#的打印數據。它似乎在緩衝輸出。
我在python中打印語句。我執行我的腳本如下所示:Python打印語句被緩衝>輸出重定向
python script.py > out.log nohup &
打印語句並不都是沒有顯示在out.log
但該計劃被整理好。
這行代碼是在.sh
文件 我做./script.sh
更新執行:日誌確實讓所有但直到行的某些#的打印數據。它似乎在緩衝輸出。
當stdout發送到tty時,它會被行緩衝,並且每一行都會被刷新,但是當重定向到一個文件或管道時,它將被完全緩衝,並且只會在您溢出緩衝區時被週期性刷新。
如果您希望輸出立即可見,或者完全禁用緩衝,則必須在每行之後添加sys.stdout.flush()
調用。見Disable output buffering的方式做後者:
- 使用
-u
命令行開關- 裹
sys.stdout
在刷新後,每寫一個對象- 設置
PYTHONUNBUFFERED
的環境變量sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
你嘗試:
?
這些步驟可能會幫助您「迴歸」問題。
感謝您的支持 – user420814 2010-08-18 19:18:10
#1和#2都按預期工作 – user420814 2010-08-18 19:24:38