Вступ
Ми часто використовуємо print щоб простежити за станом скрипта, або коли займаємося налагодженням. Замість того, щоб постійно дивитися у вікно терміналу і чекати на якийсь висновок, ми можемо використати спливаючі повідомлення як спосіб перегляду виводу і паралельно з цим займатися чимось ще.
Зробити це зовсім не складно — ми використовуватимемо вбудовані команди нашої операційної системи для виведення повідомлень, просто запускаючи їх через Python. Декілька рядків коду, і жодних сторонніх модулів.
Mac OS
Наступна команда запускає AppleScript (вбудована скриптова мова Apple) для повідомлень.
>
osascript -e 'відобразити сповіщення "Ваше повідомлення буде сюди" з заголовком "Назва"'
Якщо ви запустите цю команду, то побачите наступний результат:
Детальніше про сам сценарій:
Отже, якщо ви використовуєте Mac OS, ви можете виконати наступний Python код:
import os title = "Готово" message = "Файл скачан" command = f''' osascript -e 'display notification "{message}" with title "{title}"' ''' os.system(command)
Запустивши цей скрипт, ви побачите схожий результат як і вище.
Linux
Linux пропонує ще простіший варіант:
>
сповістити-надіслати "Ваше повідомлення" "Назва"
Аналогічно тому, як ми виводили повідомлення на Mac OS через os.system, так само можна зробити в системі Linux.
Windows
У Windows немає такої команди, яка б запускала повідомлення як в Linux і Mac OS, але це все одно можна зробити за допомогою бібліотеки win10toast , спочатку її потрібно встановити: pip install win10toast і тепер приклад її використання:
import win10toast toaster = win10toast.ToastNotifier() toaster.show_toast("Заголовок", "Описание уведомления")
Метод show_toast приймає й інші аргументи, але докладніше про них ви можете прямо почитати - просто викликавши help передавши їй об'єкт функції, про яку потрібно дізнатися докладніше.
Робимо скрипт крос-платформним
Щоб дізнатися яка система стоїть на вашому комп'ютері використовується команда system() з вбудованої бібліотеки platform . Для Mac OS ця команда повертає рядок "Darwin", для Linux "Linux", для Windows - "Windows", тепер, знаючи все це, можемо помістити весь код у функцію push . Ось що вийде:
import platform, os def push(title, message): plt = platform.system() if plt == "Darwin": command = ''' osascript -e 'display notification "{message}" with title "{title}"' ''' elif plt == "Linux": command = f''' notify-send "{title}" "{message}" ''' elif plt == "Windows": win10toast.ToastNotifier().show_toast(title, message) return else: return os.system(command)
Висновок
У статті було показано як вивести спливаючі повідомлення на Python'і, безумовно, це був не єдиний спосіб. Існує достатня кількість бібліотек, які виконують подібні цілі.