【问题标题】:how can i execute python code every hour我怎样才能每小时执行一次python代码
【发布时间】:2017-12-05 09:29:32
【问题描述】:

我正在开发一个“WeatherLogger”应用程序,它将每小时/每天创建一个日志文件。 这是我的代码:

import Adafruit_DHT as dht
import RPi.GPIO as GPIO
import time
import os
GPIO.setmode(GPIO.BCM)
rainsensorpin = "4"
GPIO.setup(rainsensorpin, GPIO.IN)
def log():
        print "[!] Log action executed, processing it..."
        filename = time.strftime('%d%Y-%m-%d %H:%M:%S')
        humidity, temperature = Adafruit_DHT.read_retry(sensor,pin)
        temp = "{:0.1f}*C".format(temperature)
        hum = "{:0.1f}%".format(humidity)
        state = GPIO.input(rainsensorpin)
        data = "Temp: ", temp, " Hum: ", hum, " Rain: ", state, " Date+Time: ", filename
        os.chdir("logs")
        os.mknod(filename)
        print "[+] Successfully created file: ", filename

有没有办法每小时或每天执行这段代码?

【问题讨论】:

  • 放入scheduler/cron,取决于你的系统?

标签: python gpio


【解决方案1】:

如果你使用的是 linux,你可以使用类似 5 * * * * /usr/bin/wget -O - -q -t 1 http://localhost/cron.php 的 cron,如果你使用的是 Windows,你可以使用 this 链接。

HTH

【讨论】:

  • 他有 GPIO 代码,我敢打赌它是嵌入式 linux 或其他一些 *nix 嵌入式操作系统。如果是窗户,我会感到惊讶。粘贴纯链接也不是一个好主意。链接过期。它可能会在几年后消失。
【解决方案2】:

您可以使用 apscheduler。您可以了解 7 种调度程序 here。后台调度程序是我喜欢的一种类型,可以通过以下几行使用:

from apscheduler.schedulers.background import BackgroundScheduler
scheduler = BackgroundScheduler()
scheduler.add_job(log, 'cron', hours='0-24', id='my_job_id')
scheduler.start()

【讨论】:

    猜你喜欢
    • 2018-03-11
    • 1970-01-01
    • 1970-01-01
    • 2022-08-20
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多