Язык программирования Python

Отправка уведомлений на рабочий стол с помощью Python

При запуске объемной задачи обычно приходится работать над чем-то другим. Непродуктивно ждать, пока задание завершится.

Поэтому, чтобы избежать необходимости ждать ее завершения, может быть удобно, чтобы Python сам посылал уведомление на рабочий стол о завершении задачи.

Для отправки уведомлений на рабочий стол с помощью Python вы можете использовать пакет plyer в Windows и Linux, в то время как на Mac это требует немного больше работы.

Создание уведомления с помощью plyer

Одним из наиболее используемых пакетов Python для создания уведомлений является plyer. Пакет, который, как обычно, можно установить с помощью pip.

pip install plyer

После установки пакета вы можете импортировать функцию уведомления из пакета для создания уведомлений. Таким образом, для создания базового уведомления достаточно написать код:

from plyer import notification notification.notify( title='Завершение моделирования', message='Моделирование завершено')
Code language: JavaScript (javascript)

Расширенные опции notification

Функция notification пакета plyer имеет следующие параметры, с помощью которых можно изменить поведение уведомлений.

  • title: Заголовок уведомления
  • message: Сообщение уведомления
  • app_name: имя приложения, инициирующего данное уведомление
  • app_icon: иконка, которая будет отображаться вместе с сообщением
  • timeout: время отображения сообщения, по умолчанию – 10 секунд.
  • ticker: текст, который будет отображаться в строке состояния при поступлении уведомления
  • toast: простое сообщение вместо полного уведомления

В дополнение к параметрам title и message, возможно, самым интересным является app_icon.

Это свойство используется для изменения иконки уведомления, что облегчает идентификацию уведомлений, запускаемых нашей программой.

Для этого вам нужен только файл в формате ico, путь к которому должен быть указан этим параметром. Это показано в следующем примере.

notification.notify( title='Окончание моделирования', message='Моделирование завершено', app_icon='python.ico', timeout = 15)
Code language: JavaScript (javascript)

Уведомления в macOS

В случае запуска приведенного выше кода на macOS мы столкнемся с ошибкой, похожей на AttributeError: ‘NoneType’ object has no attribute ‘setDelegate_’, вместо уведомления. Это связано с тем, что в настоящее время plyer не может быть использован на macOS.

Однако эту проблему можно легко решить, поскольку на macOS можно отправлять уведомления.

Доступ к нему можно получить с помощью функции os.system().

import os title = 'Окончание моделирования' message = 'Моделирование завершено' os.system("osascript -e 'display notification \"{}\" with title \"{}\"'".format(message, title))
Code language: JavaScript (javascript)

Мультиплатформенные уведомления

Возможно, при написании кода мы не знаем, в какой операционной системе он будет выполняться. К счастью, можно спросить Python, на какой платформе мы работаем, используя platform.system().

В случае macOS он вернет ‘Darwin’, поэтому следующая функция действительна как в Windows, так и в macOS.

import os import platform from plyer import notification def notify(message, title): if platform.system() == 'Darwin': os.system("osascript -e 'display notification \"{}\" with title \"{}\"'".format(message, title)) else: notification.notify( title=title, message=message, app_icon='python.ico') notify('Моделирование завершено', 'Окончание моделирования')
Code language: JavaScript (javascript)

Заключение

Мы рассмотрели, как отправлять уведомления на рабочий стол с помощью Python как в Windows, так и в macOS. Инструмент, который может быть полезен, когда у нас есть сценарии, требующие времени на выполнение, и мы не хотим знать об их завершении.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *