如何在特定时间 运行 我的代码?
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)
我正在使用 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)