一、需求背景
职场很多工作具备固定周期性:每日生成日报、每周汇总报表、每月归档文件、定时推送邮件。手动定点执行极易遗忘,本文使用schedule轻量定时库,结合前文Excel、邮件脚本,搭建全自动办公流水线,实现无人值守运行。
二、环境安装
pip install schedule
三、定时任务核心用法+实战全流程
1. 定时库基础语法
import schedule
import time# 定义执行函数
def job():print("定时任务执行成功!当前时间:", time.strftime("%Y-%m-%d %H:%M:%S"))# 每隔1分钟执行一次
schedule.every(1).minutes.do(job)
# 每天10点执行
schedule.every().day.at("10:00").do(job)
# 每周一执行
schedule.every().monday.do(job)# 循环监听任务
while True:schedule.run_pending()time.sleep(1)
2. 企业级实战:每日自动生成报表+推送邮件
整合第二篇Excel统计、第四篇邮件发送脚本,实现完整自动化流程
import schedule
import time
from openpyxl import load_workbook, Workbook
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
from email.header import Header# 1. 自动生成日报表
def create_daily_report():wb = Workbook()ws = wb.activews.title = "每日数据报表"ws.append(["统计时间", "完成数量", "异常数量", "处理进度"])ws.append([time.strftime("%Y-%m-%d"), 28, 2, "100%"])file_name = f"每日报表_{time.strftime('%Y%m%d')}.xlsx"wb.save(file_name)print(f"{file_name} 生成完成")return file_name# 2. 自动发送报表邮件
def send_report_email(file_name):sender = "你的邮箱@qq.com"auth_code = "你的授权码"receiver = "领导邮箱@qq.com"msg = MIMEMultipart()msg["From"] = Header("自动化报表系统")msg["To"] = Header("部门负责人")msg["Subject"] = Header(f"{time.strftime('%Y年%m月%d日')}工作报表")text = MIMEText("今日工作报表已自动生成,详见附件。", "plain", "utf-8")msg.attach(text)# 添加附件with open(file_name, "rb") as f:attach = MIMEApplication(f.read(), _subtype="xlsx")attach.add_header("Content-Disposition", "attachment", filename=file_name)msg.attach(attach)# 发送邮件smtp = smtplib.SMTP_SSL("smtp.qq.com", 465)smtp.login(sender, auth_code)smtp.sendmail(sender, receiver, msg.as_string())smtp.quit()print("报表邮件推送成功!")# 3. 整合定时任务
def auto_work_job():file = create_daily_report()send_report_email(file)# 设置每天18点自动执行
schedule.every().day.at("18:00").do(auto_work_job)# 持续运行
if __name__ == "__main__":print("自动化办公任务已启动,等待定时执行...")while True:schedule.run_pending()time.sleep(1)
四、进阶优化与部署
1、服务器/电脑后台运行,关闭窗口不中断任务;
2、添加日志记录,留存每次任务执行记录;
3、可拓展定时清理垃圾文件、定时数据备份等场景。
