Saya menulis kode python untuk memasukkan teks acak ke file .txt. Sekarang saya ingin mengirim teks acak ini ke area notifikasi melalui perintah 'notify-send'. Bagaimana kita melakukannya?
Saya menulis kode python untuk memasukkan teks acak ke file .txt. Sekarang saya ingin mengirim teks acak ini ke area notifikasi melalui perintah 'notify-send'. Bagaimana kita melakukannya?
Jawaban:
Kami selalu dapat memanggil notify-send sebagai proses, misalnya seperti itu:
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import subprocess
def sendmessage(message):
subprocess.Popen(['notify-send', message])
return
Atau kita juga bisa menginstal python-notify dan memanggil notifikasi melalui itu:
import pynotify
def sendmessage(title, message):
pynotify.init("Test")
notice = pynotify.Notification(title, message)
notice.show()
return
Perhatikan bahwa tidak ada paket python3-notify yang tersedia di Ubuntu. Jika Anda menggunakan Python 3, Anda harus menggunakan python3-notify2 . API untuk notify2 sama: ganti saja pynotify
dengan notify2
.
pynotify.init("Test")
dan pynotify.Notification(title, message).show()
. Ngomong-ngomong aku 'Belajar Python The Hard Way', jadi aku mungkin mengabaikan sesuatu ...
Sementara Anda dapat menelepon notify-send
melalui os.system
atau subprocess
ini bisa dibilang lebih konsisten dengan pemrograman berbasis GTK3 untuk menggunakan intro- notifikasi gobject .
Contoh kecil akan menunjukkan ini dalam tindakan:
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()
akan memanggil shell untuk menjalankan perintah, jadi ada proses shell juga bermunculan.
Untuk menjawab pertanyaan Mehul Mohan juga mengusulkan cara terpendek untuk mendorong pemberitahuan dengan bagian judul dan pesan:
import os
os.system('notify-send "TITLE" "MESSAGE"')
Menempatkan ini dalam fungsi mungkin agak membingungkan karena tanda kutip dalam tanda kutip
import os
def message(title, message):
os.system('notify-send "'+title+'" "'+message+'"')
'notify-send "{}" "{}"'.format(title, message)
daripada menambahkan string?
Bagi siapa pun yang melihatnya di +2018, saya dapat merekomendasikan paket notify2 .
Ini adalah pengganti python murni untuk notify-python, menggunakan python-dbus untuk berkomunikasi dengan server notifikasi secara langsung. Ini kompatibel dengan Python 2 dan 3, dan panggilan baliknya dapat bekerja dengan aplikasi Gtk 3 atau Qt 4.
subprocess.Popen(['notify-send', message])
untuk membuat contoh pertama berfungsi.