首先,我们需要安装一个Python的第三方库schedule
,它是一个轻量级的定时任务框架,可以帮助我们轻松地实现各种定时任务。
安装schedule
库的方法很简单,我们可以通过命令行使用pip来完成:
pip install schedule
我们需要编写一个定时任务函数来执行我们想要执行的操作。这个函数可以是任何我们需要执行的Python代码,例如发送邮件、爬取网站数据等等。
下面是一个简单的定时任务函数,每30秒钟输出一次"Hello, World!":
import time
def job():
print("Hello, World!")
schedule.every(30).seconds.do(job)
while True:
schedule.run_pending()
time.sleep(1)
在这个例子中,我们使用了schedule.every(30).seconds
来表示每30秒钟运行一次定时任务函数job()
。最后的while
循环用于持续运行程序,直到手动终止。
完成上述两步之后,我们就可以运行我们的定时任务了。在命令行中运行我们的Python脚本即可开始运行定时任务:
python my_script.py
也可以将脚本部署到服务器后通过nohup
命令后台运行,保证定时任务一直在后台运行。
示例1:定时执行Python脚本
在这个示例中,我们将演示如何使用Python的schedule
库来定时执行一个Python脚本。这个脚本的功能是输出当前的日期时间信息。
首先,我们需要创建一个名为my_script.py
的Python脚本,代码如下:
import datetime
def job():
print(datetime.datetime.now())
schedule.every(10).seconds.do(job)
while True:
schedule.run_pending()
在这个脚本中,我们使用了Python内置的datetime
模块来获取当前时间,并使用print
函数输出。
然后,我们可以在命令行中输入以下命令来运行这个脚本:
python my_script.py
在这个例子中,我们设置每10秒钟执行一次定时任务,并打印出当前的日期时间信息。
示例2:定时发送邮件
在这个示例中,我们将演示如何使用Python的schedule
库来定时发送一封邮件。
首先,我们需要创建一个名为send_email.py
的Python脚本,代码如下:
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
def send_mail():
msg = MIMEText('这是一封测试邮件', 'plain', 'utf-8')
msg['From'] = formataddr(["发件人昵称", 'xxx@qq.com'])
msg['Subject'] = "测试邮件"
msg['To'] = formataddr(["收件人昵称", 'xxx@qq.com'])
server = smtplib.SMTP("smtp.qq.com", 25)
server.login("用户名", "密码")
server.sendmail('xxx@qq.com', ['xxx@qq.com', ], msg.as_string())
server.quit()
schedule.every(10).seconds.do(send_mail)
while True:
schedule.run_pending()
在这个脚本中,我们使用smtplib库来发送邮件,使用email库来创建邮件内容。在send_mail()
函数中,我们设置了发件人、收件人、主题和正文,然后使用SMTP协议发送邮件。
然后,我们可以在命令行中输入以下命令来运行这个脚本:
python send_email.py
在这个例子中,我们设置每10秒钟执行一次定时任务,并发送一封测试邮件。当我们在send_mail()
函数中修改收件人和发件人地址以及用户名和密码,即可自行测试发送邮件。
本文链接:http://task.lmcjl.com/news/12908.html