2015-11-06 32 views
0

我有一個在後臺啓動時運行的python腳本。它的打印命令不會像通過例如手動調用腳本那樣進入bash控制檯。 python script.py。通過調用python script.py > log.txt 2>&1可將輸出和錯誤重定向到文件。但啓動後,腳本運行時,我可以看到日誌文件,但它的大小爲零,所以大概等待腳本結束。調用它與cat什麼都不返回。我試過使用追加>>而不是運氣。實時記錄進程輸出到文件

有什麼辦法可以使輸出實時發生,所以可以查看嗎?

+2

務必[刷新輸出(http://stackoverflow.com/q/230751/478288)確保緩衝不是罪魁禍首。 – chrisaycock

+0

使用stderr進行記錄 - 它沒有被緩衝。請參閱http://stackoverflow.com/questions/15860372/in-python-can-i-redirect-the-output-of-print-function-to-stderr –

+0

@chrisaycock是正確的,插入'sys.stdout.flush( )到代碼中修復它。任何強烈的意見,哪種方法是最佳的? – geotheory

回答

0

你的輸出被緩衝,所以flush它的Python腳本,以確保結果中會出現:

sys.stdout.flush() 
相關問題