Python的sched模块提供了一个定时器功能,可用于创建定期执行的任务。下面是使用sched模块实现的基本任务调度流程:
1.首先,导入sched模块
import sched
2.初始化scheduler对象
s = sched.scheduler(timefunc=time.time, delayfunc=time.sleep)
3.编写需要定时执行的函数
def task():
print("This is a timed task!")
4.设定任务执行的时间间隔
interval = 5 # 5秒
5.定义一个循环函数,其中task()将被周期性地执行
def loop():
s.enter(interval, 0, loop)
task()
6.开始循环调度
s.enter(interval, 0, loop)
s.run()
下面是两个实现定时任务的示例:
- 定时执行一个Python脚本
假设我们有一个Python脚本test.py
, 现在我们想要每隔5秒自动运行一次。完整的示例代码如下:
import sched
import time
import subprocess
def run_script():
subprocess.call(["python", "test.py"])
interval = 5 # 5秒
s = sched.scheduler(timefunc=time.time, delayfunc=time.sleep)
def loop():
s.enter(interval, 0, loop)
run_script()
s.enter(interval, 0, loop)
s.run()
- 定时爬取网页并将结果存储到本地
假设我们想要每隔10秒爬取一次网页https://www.example.com
, 并将结果存储到本地文件result.txt
中。完整的示例代码如下:
import sched
import requests
import time
url = "https://www.example.com"
output_file = "result.txt"
interval = 10 # 10秒
s = sched.scheduler(timefunc=time.time, delayfunc=time.sleep)
def save_result(result):
with open(output_file, "w") as f:
f.write(result)
def crawl():
r = requests.get(url)
save_result(r.text)
def loop():
s.enter(interval, 0, loop)
crawl()
s.enter(interval, 0, loop)
s.run()
这两个示例展示了如何利用Python的sched模块实现定时任务,通过它们我们可以了解到sched模块的基本用法。不仅限于这些示例,定时任务的应用场景非常广泛,可以根据实际需求进行扩展和修改。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python利用sched模块实现定时任务 - Python技术站