2017-06-02 67 views
0

我有一個簡單的Python程序,sample.py不能看的運行日誌文件

import time 
n = 1 
while True: 
    print 'Testing', n 
    n += 1 
    time.sleep (1) 

當我在bash運行該程序作爲後臺作業:

$ python sample.py &> sample.log & 

現在看日誌文件:

$ watch tail -n5 sample.log 

除非程序停止,否則我什麼都看不到。另外,如果在任何文本編輯器中查看sample.log文件,則其爲空。

那麼,如何實時查看日誌文件中的更改?

+4

嘗試使用'tail -f -n5 sample.log','-f'標誌意味着在文件發生變化時跟隨它。 –

+0

[這是否有幫助](https://stackoverflow.com/a/107717/5067311)? –

+0

不幸的是,這是行不通的。看起來我可以在程序結束後看到整個sample.log文件。它不應該是行爲。不管怎麼說,還是要謝謝你! – Debdut

回答

2

輸出得到緩衝;在每次打印後清空緩衝區,然後您會看到您的watch命令會產生預期的輸出。

import time 
import sys 

n = 1 
while True: 
    print 'Testing', n 
    sys.stdout.flush() 
    n += 1 
    time.sleep (1)