আমি কীভাবে বিজ্ঞপ্তি বুদবুদগুলিতে পাঠ্য বার্তা প্রেরণ করব?


38

.Txt ফাইলে এলোমেলো লেখা পাওয়ার জন্য আমি পাইথন কোড লিখেছিলাম। এখন আমি 'অবহিত-প্রেরণ' কমান্ডের মাধ্যমে এই র্যান্ডম পাঠ্যটি বিজ্ঞপ্তি অঞ্চলে প্রেরণ করতে চাই। আমরা যে কিভাবে করব?

উত্তর:


63

আমরা সর্বদা সাব - প্রসেস হিসাবে বিজ্ঞপ্তি- প্রেরণকে কল করতে পারি, যেমন:

#!/usr/bin/env python
#-*- coding: utf-8 -*-

import subprocess

def sendmessage(message):
    subprocess.Popen(['notify-send', message])
    return

বিকল্পভাবে আমরা পাইথন-নোটিফাই ইনস্টল করতে এবং এর মাধ্যমে বিজ্ঞপ্তিটি কল করতে পারি:

import pynotify

def sendmessage(title, message):
    pynotify.init("Test")
    notice = pynotify.Notification(title, message)
    notice.show()
    return

মনে রাখবেন যে উবুন্টুতে পাইথন 3-নোটিফাই প্যাকেজ নেই। আপনি যদি পাইথন 3 ব্যবহার করেন তবে আপনাকে পাইথন 3 -notify2 ব্যবহার করতে হবে । শুধু প্রতিস্থাপন করুন: notify2 জন্য API একই pynotifyসঙ্গে notify2


1
subprocess.Popen(['notify-send', message])প্রথম উদাহরণটি কাজ করতে আমাকে ব্যবহার করতে হয়েছিল।
lgarzo

দ্বিতীয়টি একটি pynotify.init("Test")এবং pynotify.Notification(title, message).show()। উপায় দ্বারা আমি "পাইথন দ্য হার্ড ওয়ে শিখছি", তাই আমি কেবল কিছু উপেক্ষা করতে পারি ...
lgarzo

এর জন্য দুঃখিত আমার কর্মক্ষেত্রে আমার বাক্সে এটি পরীক্ষা করতে অক্ষম ছিল - আমার খারাপ। অনুপস্থিত বিটগুলি সম্পাদনা করে
তক্কাত

10

python3

যতক্ষণ আপনি কল করতে পারেন 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")

Gtk প্রোগ্রামিংয়ের সাথে কেবল আরও সামঞ্জস্যপূর্ণ নয়, এটি একটি একক প্রক্রিয়া: কোনও কাঁটাচামচ চলছে না, কেবলমাত্র একটি প্রজ্ঞাপন বুদ্বুদ প্রেরণে নতুন প্রক্রিয়া তৈরির উপর সম্পদের অপচয় Popen()হবে না, কমান্ডটি চালানোর জন্য শেলকে কল করবে, তাই আছে শেল প্রক্রিয়া খুব পপ আপ।
সের্গেই কোলোডিয়াজহনি

6
import os
mstr='Hello'
os.system('notify-send '+mstr)

আমি কীভাবে এই বিজ্ঞপ্তিটি কাস্টমাইজ করব? শিরোনামের মতো, বিজ্ঞপ্তিতে চিত্র ইত্যাদি?
মেহুল্লিপ

1
এই সংস্করণটি স্বেচ্ছাসেবক কমান্ড কার্যকর করার পক্ষে ঝুঁকিপূর্ণ।
স্টিভ

5

মেহুল মোহন প্রশ্নের উত্তর দেওয়ার পাশাপাশি শিরোনাম এবং বার্তার বিভাগগুলির সাথে একটি বিজ্ঞপ্তিটি প্রেরণের জন্য সবচেয়ে সংক্ষিপ্ততম উপায় প্রস্তাব করুন:

import os
os.system('notify-send "TITLE" "MESSAGE"')

উদ্ধৃতিতে উদ্ধৃতিগুলির কারণে এটিকে ফাংশনে রাখা কিছুটা বিভ্রান্তিকর হতে পারে

import os
def message(title, message):
  os.system('notify-send "'+title+'" "'+message+'"')


2
'notify-send "{}" "{}"'.format(title, message)স্ট্রিং যুক্ত করার পরিবর্তে ব্যবহার সম্পর্কে কী ?
স্ট্যাম কালি

4

এটি +2018 এ দেখার জন্য, আমি notif2 প্যাকেজটি সুপারিশ করতে পারি

এটি নোটিফাই-পাইথনের জন্য খাঁটি পাইথন প্রতিস্থাপন, সরাসরি বিজ্ঞপ্তি সার্ভারের সাথে যোগাযোগ করার জন্য পাইথন-ডিবিস ব্যবহার করে। এটি পাইথন 2 এবং 3 এর সাথে সামঞ্জস্যপূর্ণ এবং এর কলব্যাকগুলি Gtk 3 বা Qt 4 অ্যাপ্লিকেশনগুলির সাথে কাজ করতে পারে।


3

আপনার notif2 প্যাকেজটি ব্যবহার করা উচিত, এটি পাইথন-নোটিফের প্রতিস্থাপন। এটি অনুসরণ হিসাবে ব্যবহার করুন।

pip install notify2

এবং কোড:

import notify2
notify2.init('app name')
n = notify2.Notification('title', 'message')
n.show()
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.