如何在 Python 中的特定时间间隔后 运行 方法?

How to run a method after a specific time interval in Python?

 
def sendDataToServer():
  global temperature
 
threading.Timer(5.0, sendDataToServer).start()
print("Sensing...")
readSensor()
readCPUTemperature()
temperature = round(temperature, 1)
print(temperature)
print(humidity)
print(pressure)
temp = "%.1f" % temperature
hum = "%.1f" % humidity
press = "%.1f" % pressure
urllib.urlopen("http://www.teema.club/projectweather/add_data.php?temp=" + temp + "&hum=" + hum + "&pr=" + press).read()
 
sendDataToServer()
 

这是我的 Python 代码,它使用带有一些参数的 url 将一些值发送到服务器。我需要每 5 秒将此数据发送到服务器。我尝试使用线程,但它不起作用。

谁能告诉我这是正确的做法吗?

要定期(固定时间间隔)运行 一些代码,您可以使用 time.sleep(),例如:

代码:

next_time = time.time()
while True:   
    # do some work here
    ....

    # wait for next interval
    next_time += 5
    time.sleep(max(0, next_time - time.time()))

更大的列表:

def sendDataToServer(temperature, humidity, pressure):
    urllib.urlopen(
        "http://www.teema.club/projectweather/add_data.php?"
        "temp=%.1f&hum=%.1f&pr=%.1f" % (
            temperature, humidity, pressure)
    ).read()


import time
next_time = time.time()
while True:
    # Read data
    temperature = humidity = pressure = 1.0

    # Send data
    sendDataToServer(temperature, humidity, pressure)

    next_time += 5
    time.sleep(max(0, next_time - time.time()))