Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python post osx notification

Using python I am wanting to post a message to the OSX Notification Center. What library do I need to use? should i write a program in objective-c and then call that program from python?


update

How do I access the features of notification center for 10.9 such as the buttons and the text field?

like image 762
kyle k Avatar asked Jul 15 '13 09:07

kyle k


1 Answers

All the other answers here require third party libraries; this one doesn't require anything. It just uses an apple script to create the notification:

import os  def notify(title, text):     os.system("""               osascript -e 'display notification "{}" with title "{}"'               """.format(text, title))  notify("Title", "Heres an alert") 

Note that this example does not escape quotes, double quotes, or other special characters, so these characters will not work correctly in the text or title of the notification.

Update: This should work with any strings, no need to escape anything. It works by passing the raw strings as args to the apple script instead of trying to embed them in the text of the apple script program.

import subprocess  CMD = ''' on run argv   display notification (item 2 of argv) with title (item 1 of argv) end run '''  def notify(title, text):   subprocess.call(['osascript', '-e', CMD, title, text])  # Example uses: notify("Title", "Heres an alert") notify(r'Weird\/|"!@#$%^&*()\ntitle', r'!@#$%^&*()"') 
like image 51
Christopher Shroba Avatar answered Sep 17 '22 13:09

Christopher Shroba