我怎么能每小时执行一次python代码

时间:2017-07-01 16:25:40

标签: python gpio

我正在开发一个" 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

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

2 个答案:

答案 0 :(得分:1)

如果您使用的是Linux,则可以使用cron与5 * * * * /usr/bin/wget -O - -q -t 1 http://localhost/cron.php之类的内容,如果您在Windows上使用this链接。

HTH

答案 1 :(得分:0)

您可以使用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()