我有一个循环,它可以获取传感器信息,使数据可用于实时仪表板,还可以写入CSV文件.我想继续提供实时数据,没有任何延迟,但只想每5分钟写入一次CSV文件.因为它会暂停所有事情,所以似乎对此不起作用.对如何处理这一问题有什么建议吗?
下面是相关的循环:
while True:
with open('enviroplus.csv', 'a', newline='') as csvfile:
writer = csv.DictWriter(csvfile, delimiter=',', quotechar='|',
quoting=csv.QUOTE_MINIMAL, fieldnames=['Date/Time','temperature','humidity','pressure','oxidising','reducing','nh3','lux','proximity','pm1','pm25', 'pm10'])
dt = datetime.now()
if not file_exists:
writer.writeheader()
file_exists = True
writer.writerow({'Date/Time': dt.strftime('%Y-%m-%d %H:%M:%S'),
'temperature': ...})
get_temperature(args.factor)
get_pressure()
get_humidity()
get_light()
if not args.enviro:
get_gas()
get_particulates()
if DEBUG:
logging.info('Sensor data: {}'.format(collect_all_data()))