对于某些情况:我有一个温室,它有一个传感器,每分钟读取一次温度,并将其添加到临时数组中一个小时。一小时后,取数组的平均值,并将该值存储在每小时数组中,该数组用于构建图表并每 24 小时向我发送一封电子邮件。
当我让系统运行 24 小时时,它会按预期发送电子邮件。然而,有时当我需要对系统进行物理更改时,我必须关闭系统才能执行此操作。这会导致临时分钟和每小时数组在重新启动时丢失。
我想出的解决方案是将数据存储在两个不同的.txt 文件中。我知道这会起作用,因为我目前正在这样做来跟踪经过的分钟数。但是,我真的不想继续添加一堆文本文件来存储数据。还有别的办法吗?
您无需为每个单独的变量创建文本文件,只需将信息存储为
json
并将其加载为 dict
。
import json
from datetime import datetime as dt
from random import randint
#represents your temperature function
def get_ftemp() -> int:
return randint(-20,120)
#take readings and save data
def set_sample() -> None:
with open('sensors.json', 'w') as file:
#sensor data for this sample
sample = dict(
timestamp = dt.timestamp(dt.now()),
temp = get_ftemp()
)
#overwrite file with updated sample
file.write(json.dumps(sample))
def get_sample() -> dict:
sample = {}
#get sample as dict
with open('sensors.json', 'r') as file:
sample = json.loads(file.read())
return sample