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


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.