使用下面显示的代码我将时间与电压读数记录到日志文件中。我注意到,如果我在程序运行时“打开”日志文件,它不会显示任何新数据。它仅显示上一次运行程序时logfile.txt中已存在的数据。为了使新数据显示在logfile.txt中,我必须停止正在运行的程序(cntl-C),然后重新打开logfile.txt。必须在某处记录新数据。为什么实时数据不会显示在日志文件中?
import sys, time, signal
with open('logfile.txt', 'a') as f:
while True:
volts = adc.read(256, 8)
print >> f, time(), volts
答案 0 :(得分:2)
输出存储在内存中的缓冲区中,在缓冲区已满或者关闭文件之前不会写入磁盘,或者您明确告诉它这样做。在从RAM刷新缓冲区之前,您不会看到新的输出。
查找File.flush()方法;我认为这就是你所需要的。