我对Python完全陌生,刚刚开始使用它。 我编写了以下脚本,从 SenseHat 获取一些数据,但不幸的是它没有做它应该做的事情。
它应该每 10 分钟从 SenseHat 获取温度、湿度和压力并写入文件“data.csv”。
如果没有sleep(600)
,脚本可以正常工作,但会记录大量数据。使用 sleep
函数,它似乎什么也没做......
这是我的脚本:
from sense_hat import SenseHat
from datetime import datetime
from csv import writer
from time import sleep
sense = SenseHat()
def get_sense_data():
sense_data = []
sense_data.append(datetime.now())
sense_data.append(sense.get_temperature())
sense_data.append(sense.get_pressure())
sense_data.append(sense.get_humidity())
return sense_data
#while True:
# print(get_sense_data())
with open('data.csv', 'wb') as f:
data_writer = writer(f)
data_writer.writerow(['time','temp','pres','hum'])
while True:
data = get_sense_data()
data_writer.writerow(data)
sleep(600)from sense_hat import SenseHat
from datetime import datetime
from csv import writer
from time import sleep
sense = SenseHat()
def get_sense_data():
sense_data = []
sense_data.append(datetime.now())
sense_data.append(sense.get_temperature())
sense_data.append(sense.get_pressure())
sense_data.append(sense.get_humidity())
return sense_data
#while True:
# print(get_sense_data())
with open('data.csv', 'wb') as f:
data_writer = writer(f)
data_writer.writerow(['time','temp','pres','hum'])
while True:
data = get_sense_data()
data_writer.writerow(data)
sleep(600)
请谁能帮助我并向我解释一下出了什么问题......?
最佳答案
文件的输出被缓冲。如果您想在脚本休眠时查看其中间结果,则需要刷新缓冲区。
with open('data.csv', 'wb') as f:
data_writer = writer(f)
data_writer.writerow(['time','temp','pres','hum'])
while True:
data = get_sense_data()
data_writer.writerow(data)
f.flush()
sleep(600)
关于python - 如何使用 sleep 来限制写入日志的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60308783/