python - 如何使用 sleep 来限制写入日志的数据?

标签 python sleep

我对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/

相关文章:

multithreading - Perl ithreads : Do some math instead of sleeping

python - Paypal 支付流集成

python - 无法使用 python 中的 headless 浏览器向 Nike.com 提交表单/登录

python - 我的点击计数器程序无法运行

python - 开始字数统计程序仅生成 python 中最后一行的输出

android - Android地理围栏系统(Google Play服务)可以在手机休眠时触发事件吗

mysql - 错误: a stop job is running for MySQL server

使用for循环打印python金字塔图案

c# - 如何在 .NET 4.0 中请求超时或取消之前为 "sleep"

bash - 使用 systemctl hibernate 编写休眠定时器