将正在进行的测量保存到 csv 文件中

Save ongoing measurement into csv file

我想将数据存储到 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 文件中。 是否可以保留程序 运行 和 'force' 写入 csv 文件?

写入 python 已缓冲。您可以强制写入输出(刷新缓冲区):

csvfile.flush()

在您的代码中,我建议您在 writer.writerow([i]) 之后添加此行。

您也可以将 buffering 参数传递给 open() function - 但我建议您不要这样做;关闭缓冲会带来性能损失。