我想将数据存储到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文件中。 是否有可能让程序保持运行并且“强制”#39;写入csv文件?
答案 0 :(得分:0)
在python中写入是缓冲的。您可以强制写入输出(刷新缓冲区):
csvfile.flush()
在您的代码中,我建议您在writer.writerow([i])
之后添加此行。
您还可以将buffering
参数传递给open() function
- 但我建议您不要这样做;切换缓冲会带来性能损失。