---
16 червня 2020 р. 16:42

Спливаючі повідомлення у 10 рядків на Python

Вступ

Ми часто використовуємо 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'і, безумовно, це був не єдиний спосіб. Існує достатня кількість бібліотек, які виконують подібні цілі.

По статті запитували0питання

2

Вам це подобається? Поділіться в соціальних мережах!

Коментарі

Only authorized users can post comments.
Please, Log in or Sign up