Python 中的桌面通知器

2025年1月10日 | 阅读 9 分钟

通知支持人们记住事情。它是一小段文本,显示在桌面或移动屏幕上,用于告知用户更新或任何其他重要的信息片段。这些信息使用户能够专注于重要事件而忽略不太重要的事件。通知存储在通知栏中,我们可以在完成工作后查看。

在接下来的教程中,我们将学习如何使用 Python 编程语言,通过几个简单的步骤,为计算机创建一个自定义的桌面通知器应用程序。

但在开始之前,让我们先简要了解一下桌面通知器及其工作原理。

了解桌面通知器

桌面通知器是一个简单的应用程序,它以弹出消息的形式在桌面上生成通知消息。我们今天将学习开发的桌面通知应用程序的主要目的是不断提醒我们全天需要完成的各种事情。

这项任务就像一个待办事项列表,我们有一系列要完成的“山羊”。桌面通知器将全天不断地通知我们不同的待办事项和要采取的行动。

现在,让我们看看“桌面通知器”项目的先决条件。

Python 项目的先决条件

对于这个 Python 项目,我们需要安装两个必要的包。第一个包是“requests”,它将帮助我们从网上获取数据;第二个包是“plyer”,它将允许我们在计算机上创建通知。

我们可以通过在命令提示符或终端中键入以下命令,使用 pip 安装程序来安装这些包。

语法

现在,让我们通过构建一个简单的桌面通知器 Python 来理解 plyer 的用途。

基于 Plyer 包的示例

在以下示例中,我们将使用 plyer 包创建一个简单的桌面通知器。

示例

输出

Desktop Notifier in Python

说明

在上面的代码片段中,我们从 plyer 包导入了 notification 对象。然后我们定义了两个字符串变量,用于存储桌面通知器的标题和消息的值。最后,我们使用了 notify() 方法。在此方法中,我们指定了参数,如 title(包含通知的标题)、message(包含要显示的文本)、app_icon(包含随消息显示的图标)、timeout(包含显示消息的时间(默认为 10 秒))、toast(包含一个布尔值,表示简单的消息而不是完整的通知)。

结果,我们可以在桌面上看到一个弹出窗口,向用户显示标题和消息。

现在,让我们构建一个桌面通知器来为 COVID 统计数据设置每日跟踪器。

Python 中桌面通知器的实现

为了在 Python 中构建桌面通知器来设置 COVID 统计数据的每日跟踪器,我们将遵循以下步骤:

步骤 1:安装所需的包

步骤 2:从网上读取冠状病毒数据

步骤 3:构建桌面通知器应用程序

步骤 4:使程序在后台运行

由于我们在上一节中已经涵盖了第一步,我们将从从网上读取与 COVID 统计数据相关的数据开始。所以,让我们开始这个项目。

从网上读取 COVID 统计数据

我们可以使用下面显示的 URL 获取与冠状病毒相关的数据,并且可以自由地将国家名称替换为您自己的国家名称。我们将在此应用程序中使用印度的冠状病毒数据。

https://corona-rest-api.herokuapp.com/Api/india/

网站看起来会像这样:

Desktop Notifier in Python

构建桌面通知器应用程序

我们已经具备了构建此应用程序所需的所有实用工具,现在让我们来编写此应用程序的代码。

注意:在本地编译器中编码比在线编译器更容易,因为在本教程的后期,我们将使此应用程序在计算机上作为后台进程执行;如果您在在线编译器中运行,那么您需要下载文件,而对于本地编译器来说,这不是必需的。建议使用任何本地编辑器或 IDE,如 Visual Studio Code (VS Code)。

导入所需的库和模块

我们将开始导入所需的库和模块,如 datetime、time、requestsplyer。让我们看下面的代码片段来演示这一点。

文件:notifier.py

说明

我们在上面的代码片段中导入了 datetime 模块来读取当前日期。我们还导入了 time 模块来暂停执行特定的时间。然后我们导入了 requests 库,以便从网上检索冠状病毒数据。最后,我们从 plyer 导入了 notification 对象,这将帮助我们在计算机上获得通知。

从网上获取数据

现在,我们将使用 requests 库从网上检索数据。让我们看下面的代码片段来演示这一点。

文件:notifier.py

说明

在上面的代码片段中,我们初始化了一个名为 covidStats 的变量,该变量将存储来自网上的冠状病毒数据。但是,我们最初将此变量设置为 None。然后我们使用了 try-except 块。在 try 块中,我们使用了 requests 库的 get() 方法,指定了前面提到的网站 URL,并将数据存储在 covidStats 变量中。如果由于缺少互联网而未能获取数据,我们会在 except 块中打印一条语句。

为项目创建自定义通知。

现在,我们将使用从 plyer 库导入的 notification 对象的 notify() 方法为项目创建自定义通知。其代码片段如下:

文件:notifier.py

说明

在上面的代码片段中,我们使用了 if 条件语句来检查 covidStats 变量是否包含来自网上的数据。然后,我们使用 json() 方法将此数据转换为 JSON 格式,并将其存储在一个名为 jsonData 的新变量中。然后,我们使用了 while() 循环(设置为 True)来多次重复循环。在此循环中,我们使用了 plyer 库的 notification 对象的 notify() 方法来为桌面创建一个通知器。我们在该方法中指定了通知的标题、消息、图标和超时时间。我们在 title 参数中打印了当前日期,并在 message 参数中打印了来自 jsonData 变量的数据。我们将通知图标设置为我们下载的 .ico 文件格式,并在 app_icon 参数中指定了路径。然后我们将 timeout 设置为 30 秒,以便通知显示该时间。最后,我们使用了 time 模块的 sleep() 方法,以便每 12 小时重复一次上述过程。

编码部分现已完成,应用程序已准备好运行。用户也可以根据自己的喜好更改 timeoutsleep() 中的值。此外,图标可以在以下位置找到:https://icon-icons.com/icon/Covid-Corona-Hygiene-Mask-Health-Protect-Doctor/140787。

我们现在可以保存文件,并在命令 Shell 或终端中运行以下命令:

语法

但在看到输出之前,这里是完整的项目代码。

完整的项目代码

以下程序文件是“桌面通知器”项目的完整代码。

文件:notifier.py

输出

Desktop Notifier in Python

使应用程序在后台运行

因此,我们终于构建了 Python 应用程序,并且在执行程序时它运行良好。然而,每次执行应用程序以获取通知是否很麻烦?

这里有一个解决方案,可以让我们通过将应用程序作为计算机系统中的后台进程运行来自动化此过程。

使 Python 应用程序在后台运行的方法

以下命令将允许我们在后台运行应用程序。请注意,如果您使用的是 Windows 操作系统,则需要在命令提示符中键入此命令;如果是 Linux 操作系统,则需要在终端中键入此命令。

语法

注意:您可以将 <file-name> 替换为您自己的文件名。

现在,让我们使用此命令在后台运行上述桌面通知器应用程序。

语法

这样,应用程序就已开始在后台运行。

如何确认应用程序正在后台运行?

为了确认应用程序是否正在后台运行,您可以打开计算机中的任务管理器,转到后台进程,然后查看 Python 是否正在运行。

下图描绘了这一点:

Desktop Notifier in Python

如何停止接收桌面通知器应用程序的通知?

为了停止接收通知,您可以打开任务管理器并搜索名为 Python 的后台进程。右键单击该进程,然后单击“结束任务”选项来终止该进程。

我们可以利用此方法的其他领域

还有不同的领域可以使用此方法。例如:

  1. 每日提醒去健身房或服药。
  2. 每小时提醒休息或喝水。
  3. 每月提醒支付账单,等等。

用户可以根据自己的需求使用此桌面通知器应用程序。

结论

通过本教程,我们学习了如何使用 Python 编程语言中的 plyer 库构建一个简单的桌面通知器。我们还学习了如何从网上检索数据并在桌面通知器中使用它。我们还了解了创建我们自己的自定义桌面通知应用程序的方法。此应用程序适用于任何操作系统,如 Windows、Linux 或 Mac。最后,我们学习了如何使应用程序在后台运行。