在快节奏的现代生活中,加班几乎成了职场人士的常态。为了更好地管理时间,避免熬夜加班,我们可以利用Python编写一个高效的加班提醒脚本。下面,我将详细讲解如何实现这一功能。
脚本设计思路
- 时间设定:用户可以设定加班开始和结束的时间。
- 提醒方式:支持多种提醒方式,如弹窗、邮件、短信等。
- 重复提醒:支持定时重复提醒,直到加班结束。
- 日志记录:记录每次提醒的时间,便于后续查看。
必要库
time:处理时间相关操作。datetime:处理日期和时间。tkinter:创建图形用户界面。smtplib:发送邮件。pyautogui:模拟鼠标和键盘操作。
代码实现
1. 安装库
pip install tkinter pyautogui
2. 编写代码
import time
import datetime
import tkinter as tk
from tkinter import messagebox
import smtplib
from email.mime.text import MIMEText
from email.header import Header
# 设置邮件服务器和账户信息
SMTP_SERVER = 'smtp.example.com'
SMTP_PORT = 465
SMTP_USER = 'your_email@example.com'
SMTP_PASSWORD = 'your_password'
def send_email():
# 创建邮件内容
msg = MIMEText('您需要加班了!', 'plain', 'utf-8')
msg['From'] = Header(SMTP_USER)
msg['To'] = Header(SMTP_USER)
msg['Subject'] = Header('加班提醒')
# 发送邮件
try:
smtp_obj = smtplib.SMTP_SSL(SMTP_SERVER, SMTP_PORT)
smtp_obj.login(SMTP_USER, SMTP_PASSWORD)
smtp_obj.sendmail(SMTP_USER, [SMTP_USER], msg.as_string())
smtp_obj.quit()
print('邮件发送成功')
except smtplib.SMTPException as e:
print('邮件发送失败:', e)
def reminder():
# 获取用户输入的加班时间
start_time = datetime.datetime.strptime(start_entry.get(), '%Y-%m-%d %H:%M')
end_time = datetime.datetime.strptime(end_entry.get(), '%Y-%m-%d %H:%M')
# 获取当前时间
now = datetime.datetime.now()
# 检查是否需要提醒
if now >= start_time and now < end_time:
# 弹窗提醒
messagebox.showinfo('加班提醒', '您需要加班了!')
# 发送邮件提醒
send_email()
# 重复提醒
while now < end_time:
time.sleep(60) # 每分钟检查一次
now = datetime.datetime.now()
# 再次检查是否需要提醒
if now >= start_time and now < end_time:
messagebox.showinfo('加班提醒', '您需要加班了!')
send_email()
if __name__ == '__main__':
# 创建窗口
root = tk.Tk()
root.title('加班提醒脚本')
# 添加标签和输入框
tk.Label(root, text='加班开始时间:').grid(row=0, column=0)
start_entry = tk.Entry(root)
start_entry.grid(row=0, column=1)
tk.Label(root, text='加班结束时间:').grid(row=1, column=0)
end_entry = tk.Entry(root)
end_entry.grid(row=1, column=1)
# 添加按钮
tk.Button(root, text='设置提醒', command=reminder).grid(row=2, column=0, columnspan=2)
# 运行窗口
root.mainloop()
使用方法
- 将上述代码保存为
reminder.py。 - 根据需要修改邮件服务器、账户信息等配置。
- 运行脚本,输入加班开始和结束时间,点击“设置提醒”按钮。
这样,每当您需要加班时,脚本会自动弹窗和发送邮件提醒您,帮助您告别熬夜加班的烦恼。
