J'ai écrit un code Python pour récupérer un texte aléatoire dans un fichier .txt. Maintenant, je veux envoyer ce texte aléatoire dans la zone de notification via la commande 'notify-send'. Comment faire ?
Réponse
Trop de publicités?PyNotify2 , suggéré par de nombreuses réponses, se considère comme obsolète à partir de la fin de l'année 2020 :
notify2 est - ou était - un paquetage permettant d'afficher les notifications du bureau sous Linux. Ce sont les petites bulles qui informent l'utilisateur, par exemple, de l'arrivée de nouveaux courriels.
notify2 est obsolète. Voici quelques alternatives :
- desktop_notify est un module plus récent qui fait essentiellement la même chose.
- Si vous écrivez une application GTK, vous pouvez utiliser GNotification ( intro , API Python ).
- Pour les cas simples, vous pouvez exécuter
notify-send
en tant que sous-processus. Le processus py-notificateur fournit une API Python simple pour cela, et peut également afficher des notifications sous Windows.
Ainsi, compte tenu des suggestions ci-dessus :
-
Les
notify-send
L'approche par sous-processus est déjà expliquée dans d'autres réponses, et py-notificateur peut simplifier cela, avec en prime la possibilité de travailler sur les plates-formes Windows à l'aide de win10toast mais aussi avec tous les inconvénients d'un appel de sous-processus sous le capot :from pynotifier import Notification
Notification( title='Notification Title', description='Notification Description', icon_path='path/to/image/file/icon.png', duration=5, urgency=Notification.URGENCY_CRITICAL ).send()
-
desktop_notify semble utiliser directement DBus, tout comme
PyNotify2
et adbus-next
comme seule dépendance.notify = desktop_notify.aio.Notify('summary', 'body') await notify.show()
-
Réponse de fossfreedom couvre les fonctions
gi
la voie de l'introspection. Mais veuillez noter qu'il utilise une API différente de celle mentionnée ci-dessus :- Il y a le
Gio.Notification
API, à partir de Gio 2.4, mentionnée parpynotify2
- Et il y a le
Notify
à partir de GLib 2.0, utilisée dans l'extrait de code de @fossfreedom.
- Il y a le
- Réponses précédentes
- Plus de réponses