实现每天凌晨 3 点执行任务,我们可以通过 Python 中的定时器模块 schedule
来实现。具体步骤如下:
1. 安装 schedule
模块
如果你还没有安装 schedule
模块,可以使用以下命令进行安装:
pip install schedule
2. 导入 schedule
模块
在 Python 代码中,我们需要先导入 schedule
模块:
import schedule
3. 编写需要执行的任务函数
在 Python 中,我们可以使用装饰器 @schedule.scheduled_job()
来声明一个需要定时执行的函数:
@schedule.scheduled_job('cron', hour=3)
def job():
print('Do something...')
上述代码中的函数 job
就是需要每天凌晨 3 点执行的任务函数。其中,@schedule.scheduled_job('cron', hour=3)
声明了这个函数需要定时执行,并且使用 cron
模式来指定具体的执行时间,也就是每天的 3 点钟执行一次。
4. 启动定时器
编写好需要执行的任务函数后,我们还需要启动定时器。这里,我们可以使用 schedule.run_pending()
方法来检查任务列表并执行任务:
while True:
schedule.run_pending()
time.sleep(1)
上述代码中的 while
循环会不断检查任务列表,如果有待执行的任务,就会执行对应的任务函数。
示例
下面给出两条示例说明。
示例 1:定时备份文件
下面这个函数会在每天凌晨 3 点钟备份指定的文件:
import shutil
@schedule.scheduled_job('cron', hour=3)
def backup_file():
src_path = '/path/to/source/file'
dst_path = '/path/to/backup/file'
shutil.copy(src_path, dst_path)
上述示例中会利用 Python 标准库中的 shutil
模块,复制 /path/to/source/file
文件到 /path/to/backup/file
目录中。这样,每天凌晨 3 点钟都会自动备份文件。
示例 2:发送日报邮件
下面这个函数会在每天凌晨 3 点钟发送日报邮件:
import smtplib
from email.mime.text import MIMEText
@schedule.scheduled_job('cron', hour=3)
def send_daily_report():
content = '这是今天的日报内容...'
msg = MIMEText(content, 'plain', 'utf-8')
msg['Subject'] = '日报'
msg['From'] = 'youremail@example.com'
msg['To'] = 'recipient@example.com'
smtp = smtplib.SMTP_SSL('smtp.example.com')
smtp.login('username', 'password')
smtp.sendmail('youremail@example.com', ['recipient@example.com'], msg.as_string())
smtp.quit()
上述示例中会利用 Python 标准库中的 smtplib
和 email
模块,发送当天的日报内容到指定的邮件地址。这样,每天凌晨 3 点钟都能自动发送日报邮件。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 定时器,实现每天凌晨3点执行的方法 - Python技术站