ฉันเขียนโค้ดไพ ธ อนเพื่อรับข้อความแบบสุ่มลงในไฟล์. txt ตอนนี้ฉันต้องการส่งข้อความแบบสุ่มนี้ไปยังพื้นที่แจ้งเตือนผ่านคำสั่ง 'แจ้งเตือน - ส่ง' เราจะทำอย่างนั้นได้อย่างไร?
ฉันเขียนโค้ดไพ ธ อนเพื่อรับข้อความแบบสุ่มลงในไฟล์. txt ตอนนี้ฉันต้องการส่งข้อความแบบสุ่มนี้ไปยังพื้นที่แจ้งเตือนผ่านคำสั่ง 'แจ้งเตือน - ส่ง' เราจะทำอย่างนั้นได้อย่างไร?
คำตอบ:
เราสามารถโทรแจ้ง - ส่งเป็น subprocess ได้เช่น:
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import subprocess
def sendmessage(message):
subprocess.Popen(['notify-send', message])
return
นอกจากนี้เรายังสามารถติดตั้งpython-alertและโทรแจ้งเตือนผ่านทาง:
import pynotify
def sendmessage(title, message):
pynotify.init("Test")
notice = pynotify.Notification(title, message)
notice.show()
return
โปรดทราบว่าไม่มีแพ็คเกจแจ้งเตือน python3 ใน Ubuntu หากคุณกำลังใช้งูหลาม 3 คุณจะต้องใช้python3-notify2 API จะ notify2 เป็นเช่นเดียว: เพียงแทนที่ด้วยpynotify
notify2
pynotify.init("Test")
pynotify.Notification(title, message).show()
โดยวิธีการที่ฉัน“การเรียนรู้หลามวิธี Hard” ดังนั้นผมอาจจะมองข้ามบางสิ่งบางอย่างเพียงแค่ ...
ขณะที่คุณสามารถโทรnotify-send
ผ่านos.system
หรือsubprocess
มันคือเนื้อหาที่สอดคล้องกันมากขึ้นกับการเขียนโปรแกรม GTK3 ตามการใช้แจ้งGObject-วิปัสสนาชั้น
ตัวอย่างเล็ก ๆ จะแสดงสิ่งนี้ในการทำงาน:
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()
จะเรียก shell เพื่อเรียกใช้คำสั่งดังนั้นจึงมี กระบวนการเปลือกก็โผล่ขึ้นมาเช่นกัน
หากต้องการตอบคำถามของ Mehul Mohan รวมทั้งเสนอวิธีที่สั้นที่สุดในการผลักดันการแจ้งเตือนด้วยชื่อเรื่องและส่วนของข้อความ:
import os
os.system('notify-send "TITLE" "MESSAGE"')
การวางฟังก์ชันนี้ไว้ในนั้นอาจทำให้เกิดความสับสนเล็กน้อยเนื่องจากคำพูดในเครื่องหมายคำพูด
import os
def message(title, message):
os.system('notify-send "'+title+'" "'+message+'"')
'notify-send "{}" "{}"'.format(title, message)
แทนที่จะเพิ่มสตริง?
สำหรับใครที่ดูนี่ใน +2018 ฉันสามารถแนะนำแพคเกจinform2
นี่คือการแทนที่ pure-python สำหรับ alert-python โดยใช้ python-dbus เพื่อสื่อสารกับเซิร์ฟเวอร์การแจ้งเตือนโดยตรง มันเข้ากันได้กับ Python 2 และ 3 และการโทรกลับสามารถทำงานกับแอปพลิเคชัน Gtk 3 หรือ Qt 4
คุณควรใช้แพ็คเกจ NOTE2 มันเป็นสิ่งทดแทนสำหรับ python-alert ใช้มันดังต่อไปนี้
pip install notify2
และรหัส:
import notify2
notify2.init('app name')
n = notify2.Notification('title', 'message')
n.show()
subprocess.Popen(['notify-send', message])
เพื่อทำให้ตัวอย่างแรกทำงานได้