2015-09-10 83 views
0

我想將數據存儲到csv文件中。但數據正在隨着時間而增加。我寫了一個簡單的例子來說明問題:將正在進行的測量保存到csv文件中

import csv 
import time 
i = 0 
with open('testfile.csv','wb') as csvfile: 
    writer = csv.writer(csvfile,delimiter=';',quoting=csv.QUOTE_NONE) 
    while True: 
     i = i+1 
     print i 
     writer.writerow([i])  
     time.sleep(2) 

當while循環運行時,csv文件沒有寫入。但是當我停止程序時,數據存儲在csv文件中。 是否有可能讓程序繼續運行並將文字強制寫入csv文件?

回答

0

在python中寫入被緩存。您可以強制將輸出寫入(刷新緩衝區)有:

csvfile.flush() 

在你的代碼我建議你writer.writerow([i])後立即加入這一行。

你也可以通過buffering參數open() function - 但我建議你不要這樣做;切換緩衝關閉帶來性能損失。

相關問題