2017-03-27 22 views
1

我有一個需要很長時間才能運行的python腳本。寫入文本文件不會實時發生。如何解決此問題

我在整個腳本中放置了打印輸出以觀察其進度。 由於這個腳本有不同的程序,其中有些會打印許多消息,所以直接在屏幕上打印是不可行的。

因此,我使用的是報告文件

f_report = open(os.path.join("//shared_directory/projects/work_area/", 'report.txt'), 'w') 

對此我打印我的按摩:

f_report.write(" "+current_image+"\n") 

然而,當我看到該文件的腳本運行時,我不知道看到消息。它們只有在程序結束並關閉文件時纔會出現,這使得我的方法無法監視正在進行的進度。 我應該怎麼做才能使python實時輸出消息到報告文件?

非常感謝。

+0

如何在腳本運行時查看文件? – pingul

+0

我使用記事本++ – user2182857

回答

2

您應該使用flush()函數立即寫入文件。

f_report.write(" "+current_image+"\n")  
f_report.flush() 
0

試試這個:

newbuffer = 0 
f_report = open(os.path.join("//shared_directory/projects/work_area/", 'report.txt'), 'w', newbuffer) 

它建立了一個緩衝0,這將推動OS將內容寫入到文件「立即」。好吧,不同的操作系統可能會有不同的行爲,但一般情況下,內容將立即刷新。

+0

@pingul,它設置了一個0緩衝區,它將推動操作系統將內容寫入文件「立即」。好吧,不同的操作系統可能會有不同的行爲,但總的來說內容會被刷新。 – Windchill

相關問題