我有一些代码用于读取ADC,然后登录到csv文件。我正在寻找一种方法来本质上将CSV中的这些数据进行FIFO。因此,如果文件大于2000行,则将CSV限制为2000个条目,并推出最早的行。这将使数据(我用于绘图)保持最新状态,也不会创建巨大的CSV文件,而该文件最终将永远在我的Raspberry Pi Zero上打开。...我对Python还是很陌生,所以不胜感激。附件是我当前的代码,该代码读取和转换ADC数据并将其写入CSV文件。 预先感谢。
with open("/home/pi/data_log.csv", "a") as log:
#fieldnames = ('Date', 'Level', 'Litres')
#writer = csv.DictWriter(log, fieldnames=fieldnames)
#writer.writeheader() #Only needed to run once
#load data to csv
log.write("{0},{1},{2}\n".format(strftime("%Y-%m-%d %H:%M:%S"),str(Level),str(Litres)))
#print some stuff so i know it is working
print("Writing to CSV")
print("RAW",ADC_RAW)
print("AVG",ADC_AVG)
print(strftime("%Y-%m-%d %H:%M:%S"))
print("Tank Level",Level,pc)
print("Tank Litres",Litres,l)
print()
if Litres <= 500:
GPIO.output(Pump,GPIO.LOW)
print("Pump Disabled - Level below 500L")
if Litres >= 1000:
GPIO.output(Pump,GPIO.HIGH)
print("Pump Enabled - Level above 1000L")
print()