电源故障时保存python文件

电源故障时保存python文件,python,python-3.x,raspberry-pi,Python,Python 3.x,Raspberry Pi,我们正在通过Raspberry Pi和Python的串行端口从Arduino应变仪获取数据。我们有它,所以它将读取所有数据进行必要的计算,并将打印到文本文件,但如果出现电源故障,收集的数据将丢失。这就是我们试图弄清楚如何修复或不发生的问题 import serial ardserial = serial.Serial('/dev/ttyACM0',9600) counter = 1 def strain(): a=int(adserial.readlines()) b=(s

我们正在通过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%确信我以前做过,如果电源被切断,它会保存数据,但我一辈子都搞不清楚。任何帮助都是。。。好。。。谢谢

每次文件写入后将数据写入磁盘:

如果您从一个缓冲的Python文件对象f开始,首先要做 f、 flush(),然后执行os.fsync(f.fileno()),以确保 与f关联的内部缓冲区被写入磁盘


来源:

您可以每次写入一个或两个字节并保存,因此,如果电源也断开,您可能会丢失最后一位数据,那么您必须通过电流传感器检查使用UPS或备用电池,如果发生这种情况,然后使用电池或UPS。这个问题更像是电气问题,而不是编程问题,所以我必须解决它。@eyllanesc它非常适合这样做!OP还不知道
file.flush()
os.fsync(file.fileno())