当前位置:首页>python>Python 中还有哪些可以实现定时提醒功能的库

Python 中还有哪些可以实现定时提醒功能的库

  • 2026-09-05 20:54:00
Python 中还有哪些可以实现定时提醒功能的库

你想了解除了 tkinter 之外,Python 中还有哪些可以实现定时提醒功能的库,这个问题很有价值——不同的库适用于不同场景(比如命令行、Web、跨平台桌面应用等),选择合适的库能让开发更高效。

下面我会按使用场景分类,介绍几款主流且实用的库,每个库都会说明核心特点、适用场景,并给出极简的使用示例,方便你快速上手。

一、轻量级定时执行库(核心是定时逻辑,无UI)

这类库专注于“定时触发任务”,本身不带界面,但可以和任意UI库(如tkinter、PyQt)结合,也可单独用于命令行程序。

1. schedule(最简洁的定时库)

  • 核心特点:语法极简、易上手,支持按固定间隔/特定时间执行任务,纯Python实现,无需依赖外部服务。
  • 适用场景:小型脚本、简单的定时提醒(如每隔1小时提醒喝水)。
  • 安装:
    pip install schedule
  • 示例代码:
    import schedule
    import time
    import winsound  # Windows声音提醒

    defreminder():
    """定时提醒函数"""
        winsound.Beep(1000, 1000)
        print("提醒:该休息了!")

    # 设置定时规则:每天14:30执行提醒
    schedule.every().day.at("14:30").do(reminder)
    # 也可以设置间隔:每隔30分钟提醒一次
    # schedule.every(30).minutes.do(reminder)

    # 持续运行定时任务
    whileTrue:
        schedule.run_pending()
        time.sleep(1)  # 每秒检查一次任务

2. APScheduler(功能最全的定时库)

  • 核心特点:工业级定时任务库,支持多种触发方式(固定间隔、CRON表达式、特定时间),支持持久化、多线程/进程,可集成到Web框架(Flask/Django)。
  • 适用场景:复杂定时需求(如每周一三五9点提醒、按CRON规则执行)、需要持久化的定时任务。
  • 安装:
    pip install apscheduler
  • 示例代码:
    from apscheduler.schedulers.blocking import BlockingScheduler
    import winsound

    defreminder():
        winsound.Beep(1000, 1000)
        print("提醒:该处理邮件了!")

    # 创建调度器
    scheduler = BlockingScheduler()

    # 方式1:每天15:00提醒
    scheduler.add_job(reminder, 'cron', hour=15, minute=0)
    # 方式2:每隔1小时提醒
    # scheduler.add_job(reminder, 'interval', hours=1)

    # 启动调度器
    try:
        scheduler.start()
    except KeyboardInterrupt:
        scheduler.shutdown()

二、跨平台桌面应用库(自带UI,适合做可视化提醒)

这类库比tkinter更现代化,自带更美观的UI组件,适合开发带界面的定时提醒工具。

1. PyQt5/PySide6(专业级桌面UI库)

  • 核心特点:功能强大、跨平台(Windows/Mac/Linux),支持丰富的UI组件(弹窗、系统托盘、通知),自带QTimer类专门处理定时任务。
  • 适用场景:开发高颜值、功能复杂的定时提醒工具(如带系统托盘提醒、自定义弹窗样式)。
  • 安装:
    # PyQt5
    pip install pyqt5
    # PySide6(更开源友好)
    pip install pyside6
  • 示例代码(PyQt5):
    from PyQt5.QtWidgets import QApplication, QWidget, QMessageBox, QPushButton, QVBoxLayout
    from PyQt5.QtCore import QTimer
    import sys
    import winsound

    classReminderApp(QWidget):
    def__init__(self):
            super().__init__()
            self.initUI()

    definitUI(self):
            self.setWindowTitle("PyQt5定时提醒")
            self.setGeometry(100, 100, 300, 200)

    # 创建定时器
            self.timer = QTimer(self)
            self.timer.timeout.connect(self.show_reminder)  # 定时触发的函数

    # 按钮
            btn = QPushButton("设置5秒后提醒", self)
            btn.clicked.connect(lambda: self.timer.start(5000))  # 5000毫秒=5秒

    # 布局
            layout = QVBoxLayout()
            layout.addWidget(btn)
            self.setLayout(layout)

    defshow_reminder(self):
            self.timer.stop()  # 停止定时器
            winsound.Beep(1000, 1000)
            QMessageBox.information(self, "提醒", "时间到!该休息了~")

    if __name__ == "__main__":
        app = QApplication(sys.argv)
        window = ReminderApp()
        window.show()
        sys.exit(app.exec_())

2. PySimpleGUI(极简桌面UI库)

  • 核心特点:语法比tkinter更简洁,一行代码就能创建界面,支持tkinter/PyQt/QtWebEngine等后端,自带定时相关组件。
  • 适用场景:快速开发轻量级定时提醒工具,不想写复杂的UI代码。
  • 安装:
    pip install pysimplegui
  • 示例代码:
    import PySimpleGUI as sg
    import time
    import winsound

    # 创建界面
    layout = [
        [sg.Text("设置提醒延迟(秒):"), sg.InputText("5", key="-TIME-")],
        [sg.Button("开始提醒"), sg.Button("退出")],
        [sg.Text("", key="-OUTPUT-")]
    ]

    window = sg.Window("PySimpleGUI定时提醒", layout)

    whileTrue:
        event, values = window.read()
    if event == sg.WIN_CLOSED or event == "退出":
    break
    if event == "开始提醒":
    try:
                delay = int(values["-TIME-"])
                window["-OUTPUT-"].update(f"将在{delay}秒后提醒...")
                time.sleep(delay)  # 等待指定时间
                winsound.Beep(1000, 1000)
                sg.popup("提醒", "时间到!")
                window["-OUTPUT-"].update("")
    except ValueError:
                sg.popup_error("请输入有效的数字!")

    window.close()

三、系统通知类库(无需弹窗,直接发系统通知)

这类库可以绕过弹窗,直接向操作系统发送通知(Windows通知中心、Mac通知栏、Linux通知),体验更友好。

1. plyer(跨平台系统通知库)

  • 核心特点:支持发送系统级通知、播放声音、震动(移动端),跨平台兼容性好。
  • 适用场景:不想弹窗口,只想在系统通知栏显示提醒。
  • 安装:
    pip install plyer
  • 示例代码(结合schedule):
    from plyer import notification
    import schedule
    import time

    defsend_notification():
    # 发送系统通知
        notification.notify(
            title="定时提醒",
            message="该喝水了!久坐伤身体~",
            timeout=10# 通知显示10秒
        )

    # 每隔10分钟发送一次通知
    schedule.every(10).minutes.do(send_notification)

    whileTrue:
        schedule.run_pending()
        time.sleep(1)

总结

  1. 轻量级定时逻辑:优先选 schedule(极简)或 APScheduler(复杂需求),可搭配任意UI库使用;
  2. 带UI的定时提醒工具:新手选 PySimpleGUI(极简),追求颜值/功能选 PyQt5/PySide6,tkinter适合入门;
  3. 系统级通知提醒:用 plyer 发送系统通知,替代弹窗更友好。

这些库都可以和你之前的tkinter时间管理器结合,比如用APScheduler替换原有的定时逻辑,用plyer替换弹窗提醒为系统通知,能大幅提升工具的体验。

最新文章

随机文章