如何在特定时间 运行 我的代码?

How can I run my code at a specific time?

我正在使用 python 开发软件。我希望我的代码在特定时间 运行。它会 运行 每 5 分钟一次,不间断。但我希望它在特定的时间和分钟内准确工作。例如,如20:00、20:05、20:10...

我使用了 time.sleep(300) 但是如果例如在我的程序 运行s 之后经过 5 秒,它开始在每个 运行 中延迟 5 秒并且例如它开始运行12 运行 秒后晚 1 分钟。例如,它应该工作在 20:05,但它开始于 20:06。

我怎样才能提供这个?

这个案例有一个有用的模型。 它是一个外部模型,你必须使用 pip 下载它,它被称为 schedule https://pypi.org/project/schedule/ - 在这里你可以看到所有的细节。

您可以使用日程模块

import schedule
import time
from datetime import datetime

now = datetime.now()

def omghi():
    print("omg hi there xD")


schedule.every(5).minutes.do(omghi)


while True:
    schedule.run_pending()
    time.sleep(1)

我相信使用定时线程最适合您的需要。 This excellent answer 使用库 threading 中的 threading.Timer 如下:

import threading

def printit():
  threading.Timer(5.0, printit).start()
  print "Hello, World!"

printit()

非常感谢您的回答。但这就是我的处理方式,我想与您分享:)

import time
from datetime import datetime

while True:
    now = datetime.now()

    if (now.minute % 5) == 0 and now.second == 0:
        print("Fire!")

    time.sleep(1)