Время прочтения: 3 мин.

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

Точно, уведомления! Хм, а звуковые или текстовые? Разберемся, что лучше и рассмотрим 3 способа отправки уведомлении на языке Python.

  1. Звуковые уведомления

Chime – простой и интересный пакет для создания звуковых уведомлений.

Установим пакет:

pip install chime

Импортируем пакет и попробуем его основные функции.

import chime
chime.success()

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

chime.error()

Звуки при запуске команд отличаются и характерно описывают каждое действие.

Если вы запустите chime.notify_exceptions, то chime.error будет вызываться всякий раз, когда возникает исключение.

chime.notify_exceptions()
raise ValueError("Упс!")

Можно сменить звук, поменяв тему с помощью следующего кода:

chime.themes()
['big-sur', 'chime', 'mario', 'material', 'zelda']

chime.theme('mario')

Если вы работаете в Jupyter notebook, то рекомендую загрузить расширение для быстроты использования.

%load_ext chime
%chime print("Пошумим?")

Команда вызовет chime.success, когда строка / ячейка завершится успешно, в противном случае вызовет chime.error каждый раз, когда возникнет исключение.

Данный способ отправки уведомлений хорошо привлекает внимание, однако он может привлечь не только ваше внимание, но и окружающих.

Рассмотрим способ с текстовым уведомлением на экране.

  1. Уведомления в Центре Уведомлений Windows 10

Данный способ очень удобен, когда вы занимаетесь на своем компьютере какой-то другой задачей параллельно. Данное уведомление однозначно привлечет ваше внимание и не побеспокоит коллег.

Установим пакет Plyer:

pip install Plyer

Импортируем класс и вызовем метод notify этого класса.

from plyer import notification
notify(message = 'Программа выполнена успешно', app_name = 'script', title='Готово')

Параметры метода:


title – заголовок сообщения уведомления

message – сообщение уведомления
app_name – имя приложения, запускающего это уведомление
app_icon – значок, который будет отображаться вместе с сообщением
timeout  – время отображения сообщения (по умолчанию 10 секунд)

После выполнения кода появится уведомление:

А что если вам уже пора уходить, а код закончит выполняться только через час? Как узнать, что программа выполнилась успешно? И можно ли получить результат этой программы и отправить его коллеге, когда вы уже на пути домой?

Рассмотрим третий способ отправки уведомлений.

  1. Уведомления на электронную почту

Отправка уведомлений по электронной почте — отличный вариант для отложенных сообщений или отправки файлов сразу после завершения программы, даже если вы уже давно забыли про её выполнение. Рассмотрим отправку сообщений на почту outlook, используя модуль win32com.client из пакета win32.

import win32com.client as win32

outlook = win32.Dispatch('outlook.application')
# cоздаем новый элемент Microsoft Outlook
mail = outlook.CreateItem(0)
# адрес получателя письма
mail.To = 'example@mail.ru'
# тема письма
mail.Subject = 'Документ'
# содержание письма
mail.Body = 'Добрый день! Файл с результатом во вложении.'
# добавляем вложение
attachment  = "C:/Users/Документ.docx"
mail.Attachments.Add(attachment)
# отправляем письмо
mail.Send()

Успешно! Письмо получено адресатом.

В данной статье рассмотрено несколько способов создания уведомлений при помощи языка Python. Используйте способы выше в зависимости от ситуации и не забывайте про свою программу 😉