我们正在通过Raspberry Pi和Python的串口从Arduino应变计获取数据。我们有它所以它将读取所有数据进行必要的计算,它将打印到文本文件,但是如果出现电源故障,收集的数据将丢失。这就是我们想要弄清楚如何修复或不发生的事情。
import serial
ardserial = serial.Serial('/dev/ttyACM0',9600)
counter = 1
def strain():
a=int(adserial.readlines())
b=(str(a*(5/16)/166))
c=float(b)
with open('textfile1.txt','a+') as text_file:
text_file.write('Strain Value: ' + str(c) + '\n')
while counter > 0:
strain()
我们拥有它所以它会正确地写入txt文件,如果我们杀死程序它将保存所有数据但我们还希望它能够保存所有数据,如果电源被拉到Raspberry Pi。它没有这样做。
我几乎100%肯定我过去已经完成了它,如果力量被杀死它会有保存的数据,但我不能为我的生活弄明白。任何帮助都会......嗯......非常感谢。
答案 0 :(得分:4)
每次写入文件后将数据写入磁盘:
如果你是从一个缓冲的Python文件对象f开始,首先要做 f.flush(),然后执行os.fsync(f.fileno()),以确保全部 与f关联的内部缓冲区写入磁盘。
来源:Python docs