关键词

利用Python实现定时程序的方法

  1. 安装定时任务框架

首先,我们需要安装一个Python的第三方库schedule,它是一个轻量级的定时任务框架,可以帮助我们轻松地实现各种定时任务。

安装schedule库的方法很简单,我们可以通过命令行使用pip来完成:

pip install schedule
  1. 编写定时任务函数

我们需要编写一个定时任务函数来执行我们想要执行的操作。这个函数可以是任何我们需要执行的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循环用于持续运行程序,直到手动终止。

  1. 运行定时任务

完成上述两步之后,我们就可以运行我们的定时任务了。在命令行中运行我们的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

展开阅读全文