1. 實現提醒機制
使用模組 datetime
和
timedelta
有時候,要創建提醒,你需要計算離事件還有多少時間。在這裡
timedelta
可以派上用場:
Python
from datetime import datetime, timedelta
# 計算提醒時間
meeting_time = datetime(2023, 10, 30, 15, 0, 0)
reminder_time = meeting_time - timedelta(minutes=30)
print(f"你需要在以下時間發送提醒:{reminder_time}")
通過控制台的簡單通知
第一步是簡單的通知。當然,它們不像智能手機上的 push 通知那樣酷,但是對於初學者來說還不錯。
Python
import time
def simple_reminder(message, delay):
print(f"{delay} 秒後會有提醒...")
time.sleep(delay)
print(f"提醒:{message}")
simple_reminder("該去開會了!", 10)
2. 使用 schedule
進行定期提醒
當你需要定期提醒時,schedule
是你的好夥伴。你可以設置多種間隔,比如每日或每週:
Python
import schedule
import time
def meeting_reminder():
print("提醒:你即將有一個會議!")
# 每天 14:30 提醒
schedule.every().day.at("14:30").do(meeting_reminder)
while True:
schedule.run_pending()
time.sleep(1)
3. 使用 plyer
庫的基於時間的通知
如果你想讓通知更“真實”,可以使用 plyer
庫來發送系統通知:
Python
from plyer import notification
import time
def plyer_notification(title, message):
notification.notify(
title=title,
message=message,
app_name='Python Reminder',
timeout=10
)
# 使用示例
plyer_notification("提醒!", "該去開會了。")
notification.notify()
函數會顯示操作系統的標準通知。
4. 通過電子郵件發送提醒
在 Python 中,用 smtplib
模組可以發送電子郵件通知。以下示例演示如何使用 SMTP 伺服器配置並發送郵件提醒。
Python
import smtplib
from email.mime.text import MIMEText
import schedule
import time
def send_email_reminder():
sender = "your_email@example.com"
receiver = "receiver_email@example.com"
subject = "任務提醒"
body = "這是一個自動提醒:別忘了今天完成你的任務。"
# 組合消息
msg = MIMEText(body)
msg["Subject"] = subject
msg["From"] = sender
msg["To"] = receiver
# 連接到 SMTP 伺服器並發送郵件
with smtplib.SMTP("smtp.example.com", 587) as server:
server.starttls()
server.login(sender, "your_password")
server.sendmail(sender, receiver, msg.as_string())
print("郵件提醒已發送。")
# 設置每天早上 8:30 發送提醒
schedule.every().day.at("08:30").do(send_email_reminder)
while True:
schedule.run_pending()
time.sleep(1)
send_email_reminder()
函數用於發送電子郵件提醒。配置發件人地址、收件人地址和 SMTP 伺服器。這種方法可以輕鬆自動化電子郵件通知的發送。
5. 通過 Telegram 發送提醒
為通過 Telegram 發送提醒,可以用它的 API。以下示例使用 requests
向 Telegram 聊天發送通知。
設置:
-
通過 BotFather 創建 Telegram 機器人並獲取
API_TOKEN
。 -
向機器人發送消息以獲取聊天 ID,然後通過 API 獲取
CHAT_ID
。
Python
import requests
import schedule
import time
def send_telegram_reminder():
api_token = "YOUR_API_TOKEN"
chat_id = "YOUR_CHAT_ID"
message = "提醒:今天你有一個重要的任務!"
url = f"https://api.telegram.org/bot{api_token}/sendMessage"
payload = {
"chat_id": chat_id,
"text": message
}
response = requests.post(url, data=payload)
if response.status_code == 200:
print("通過 Telegram 發送的提醒已成功。")
else:
print("向 Telegram 發送提醒時出錯。")
# 設置每天早上 9:00 發送提醒
schedule.every().day.at("09:00").do(send_telegram_reminder)
while True:
schedule.run_pending()
time.sleep(1)
現在每天早上 9:00,機器人都會向指定的 Telegram 聊天發送通知。
6. 設置通知的更多建議
- 錯誤處理:添加通知發送的錯誤處理,例如檢查與電子郵件伺服器或 Telegram 的連接。
-
日誌記錄:使用
logging
庫記錄通知事件。這有助於跟踪提醒的真實發送時間。 - 靈活設置:如果計劃將提醒用於專案,創建一個函數來動態設置時間和通知方式,以便能夠更改設置。
GO TO FULL VERSION