Bir .txt dosyasına rastgele metin almak için bir python kodu yazdım. Şimdi bu rastgele metni 'notify-send' komutu ile bildirim alanına göndermek istiyorum. Bunu nasıl yaparız?
Bir .txt dosyasına rastgele metin almak için bir python kodu yazdım. Şimdi bu rastgele metni 'notify-send' komutu ile bildirim alanına göndermek istiyorum. Bunu nasıl yaparız?
Yanıtlar:
Notify- send'i her zaman bir alt işlem olarak çağırabiliriz , örneğin:
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import subprocess
def sendmessage(message):
subprocess.Popen(['notify-send', message])
return
Alternatif olarak python-notify'ı yükleyebilir ve bildirimi şu şekilde çağırırız:
import pynotify
def sendmessage(title, message):
pynotify.init("Test")
notice = pynotify.Notification(title, message)
notice.show()
return
Ubuntu'da python3-notify paketi bulunmadığını unutmayın. Python 3 kullanıyorsanız, python3-notify2 kullanmanız gerekir . Sadece değiştirin: Notify2 API aynıdır pynotify
ile notify2
.
pynotify.init("Test")
ve pynotify.Notification(title, message).show()
. Bu arada
Arayabileceğin iken notify-send
aracılığıyla os.system
ya subprocess
da haberdar kullanmak GTK3 tabanlı programlama ile tartışmasız daha tutarlıdır gobject-içgözlem sınıfını.
Küçük bir örnek bu eylemde gösterecektir:
from gi.repository import GObject
from gi.repository import Notify
class MyClass(GObject.Object):
def __init__(self):
super(MyClass, self).__init__()
# lets initialise with the application name
Notify.init("myapp_name")
def send_notification(self, title, text, file_path_to_icon=""):
n = Notify.Notification.new(title, text, file_path_to_icon)
n.show()
my = MyClass()
my.send_notification("this is a title", "this is some text")
Popen()
komutu çalıştırmak için kabuk arayacak, bu yüzden Kabuk işlemi de ortaya çıkıyor.
Mehul Mohan sorusuna cevap vermek ve aynı zamanda başlık ve mesaj bölümleriyle bir bildirimde bulunmak için en kısa yolu önermek için:
import os
os.system('notify-send "TITLE" "MESSAGE"')
Bunu işlevine koymak, tırnak işaretleri içindeki tırnaklar nedeniyle biraz kafa karıştırıcı olabilir.
import os
def message(title, message):
os.system('notify-send "'+title+'" "'+message+'"')
'notify-send "{}" "{}"'.format(title, message)
Dizeleri eklemek yerine kullanmaktan ne haber ?
+2018'de buna bakan herkes için notify2 paketini önerebilirim .
Bu, doğrudan bildirim sunucusuyla iletişim kurmak için python-dbus kullanan, notify-python için saf bir python yedeğidir. Python 2 ve 3 ile uyumludur ve geri aramaları Gtk 3 veya Qt 4 uygulamalarıyla çalışabilir.
subprocess.Popen(['notify-send', message])
İlk örneği işe almak için kullanmak zorunda kaldım .