在Python程序中,我使用下面的重定向stdout
:Python的更新文件(標準輸出)的最後一行
sys.stdout = open("log_file.txt", "a",0)
在一定條件下我想重寫文件的最後一行。
我已經試過如下:
if (status=='SAME'):
print '\r'+'Above status doesnot change and last checked @'+str(datetime.datetime.fromtimestamp(time.time())),
這似乎當我使用tail命令查看文件的工作。
tail -f log_file.txt
但是,當我看着文件的原始內容,它不覆蓋最後一行,但它是附加。
請建議我保持sys.stdout = open("log_file.txt", "a",0)
原樣的其他方法。
我的代碼正在生產輸出爲:
0007505-160614083053377-oozie-oozi-W-> Started : 2016-06-14 16:15:32
[email protected] RUNNING job_1465907358342_1346 RUNNING -
Above status doesnot change and last checked @2016-06-14 16:15:43.096288
Above status doesnot change and last checked @2016-06-14 16:15:53.344065
Above status doesnot change and last checked @2016-06-14 16:16:03.672789
[email protected] OK - OK -
我想這是
0007505-160614083053377-oozie-oozi-W-> Started : 2016-06-14 16:15:32
[email protected] RUNNING job_1465907358342_1346 RUNNING -
Above status doesnot change and last checked @2016-06-14 16:16:03.672789
[email protected] OK - OK -
如果你不想追加,不以「一」打開它。 –
我想追加在一些情況下,但如果條件來了,我想覆蓋最後一行..在我的情況下,如果狀態不會改變我想用最後checcked時間戳覆蓋最後一行。如果它發生變化,我想追加新的狀態。 –