Можете ли вы создать службу Mac OS X с Python? Как?

Можете ли вы создать службу Mac OS X с Python? Как ?

Я хочу знать, как подключить Python-fu к системе обслуживания, предоставляемой Mac OS X. Кто-нибудь знает, как это сделать? Если да, то какой-либо фрагмент рабочего кода? Будет работать только по тексту или также по заданному объекту, определенному в mimetype?

Всплывающее окно службы

4 Solutions collect form web for “Можете ли вы создать службу Mac OS X с Python? Как?”

  • Откройте Automator.app и создайте новый сервис.

  • Выберите «Утилиты» в списке левых действий, затем перетащите действие «Запустить сценарий оболочки» в рабочий процесс.

  • Выберите /usr/bin/python качестве оболочки.

  • Введите некоторый питон. Например:

:

 import sys for f in sys.stdin: print "Hello World: " + f, 
  • Сохраните услугу, например, «Тест»,

  • Попробуйте в TextEdit.app. Введите текст, выберите текст, затем в меню выберите TextEdit -> Services -> Test. Он должен добавить «Hello World:» к каждой строке текста (в соответствии с кодом python for f in sys.stdin )

Вышеприведенный пример работает с текстом. Предположительно, он может быть изменен для работы с другими типами данных, предоставляемыми через систему OS X Services.

Как реализовать – я бы сказал, что есть три возможности:

  1. Вы можете использовать Automator и создать службу из действия сценария запуска оболочки.
  2. Вы сами можете написать действие Automator с помощью Xcode и использовать его в Automator и создать из него новую службу. Преимущество в том, что вы можете написать для него интерфейс. Вы используете привязки для привязки к объекту владельца файла. Затем ключи привязки отражаются в сценарии как переменные среды.
  3. Создайте автономную службу или службу вместе с приложением. Я реализовал один, включенный в приложение. Там вы также можете определить отдельный пользовательский интерфейс только для службы.

Типы ввода. Если вы хотите, чтобы служба отображалась только в том случае, если определенные вещи выбраны, например текст или URL-адреса, вы должны определить это в Info.plist этой службы. Я думаю, что должно быть возможно отредактировать Info.plist, который был сгенерирован Automator, если вы хотите его настроить.

Существует отличный способ отладки службы, использующей TextEdit, и описан в документах, упомянутых ниже. Это дает большую помощь для отладки, почему услуга не отображается в меню, например. Более подробную информацию можно найти в руководстве по внедрению сервиса Apple

Один из способов создания службы OS X с использованием Python – это связать приложение Python с py2app и отредактировать файл Info.plist, чтобы предоставить вам пункты меню, которые вам нужны в меню «Сервис». Пример файла plist можно найти по адресу http://pythonhosted.org/pyobjc/examples/Cocoa/AppKit/SimpleService/index.html. Вам необходимо создать функциональность, чтобы принять команды, определенные вами в разделе NSMessage Info.plist (см. ссылка, упомянутая выше). Вы можете использовать PyObjC для этого. Это немного сложнее, чем использование Automator, но имеет то преимущество, что вы можете объединить всю функциональность в одно приложение.

Я нашел эту страницу, когда пытался создать службу python. Я хотел поделиться своим полным решением, чтобы немного спасти других и, возможно, получить отзывы от более опытных кодеров. Я использовал System Preference> Keyboard: Keybindings для установки «Application Sortcut: All Apps» для этой службы, чтобы я мог выполнять выделенный текст в любой точке системы с помощью команды shift-return. Вы заметите, что любые Исключения приведут к тому, что выбор будет заменен исходным текстом. Работает с UNDO, если вы не получили результат, которого вы добились. Пока мне это очень нравится!

Создайте рабочий процесс автоматизации как службу, служба получает выделенный текст в любом приложении, ввод – весь выбор, вывод заменяет выделенный текст

Добавить действие сценария запуска оболочки, shell: / usr / bin / python pass input: как аргументы

Этот код находится в поле:

 import sys #, random try: print eval(' '.join(sys.argv[1:])) except: try: #This is a compound statement using variable assignment code = compile(' '.join(sys.argv[1:]), '<string>', 'exec') exec code except: print ' '.join(sys.argv[1:]) 

Вот несколько примеров того, как я могу использовать эту службу. Опять же, это работает в Mail, текстовых процессорах и других приложениях.

Пример 0: базовая математика

 >>> 42*24*60*60 3628800 

Пример 1: одиночная строка, составная заявка

 >>> import random; foo = range(17); random.shuffle(foo); print(foo) [11, 14, 12, 3, 1, 4, 15, 7, 8, 13, 2, 16, 0, 10, 9, 6, 5] 

Образец 2: многострочный

 >>> import random >>> foo = range(17) >>> random.shuffle(foo) >>> print(foo) [5, 16, 14, 10, 3, 11, 7, 15, 12, 0, 13, 2, 4, 1, 6, 9, 8] 

Пример 3: Циклы

 >>> for x in range(5): ... print x ... 0 1 2 3 4 
  • как установить PIL на Macosx 10.9?
  • Символ не найден: _BIO_new_CMS
  • Python runtime_library_dirs не работает на Mac
  • pip ничего не может установить, ошибка: неверная команда 'egg_info'
  • Использование импорта pyobjc в PyDev в Eclipse на Mac OS X
  • Как проверить, построена ли библиотека на 32 бит / 64 бит на Mac OS X?
  • Очистка всех других установленных питонов на OS X
  • Направление Sublime Text 2 Пакеты для правильной установки python
  •  
    Interesting Posts for Van-Lav

    Заявление на печать в задании по сельдерину не отображается в терминале

    Как определить, поддерживает ли консоль escape-коды ANSI в Python?

    bash: строчная интерполяция

    Как «с» лучше, чем try / catch, чтобы открыть файл в Python?

    C / C ++ эквиваленты стандартной библиотеки Python

    Python: как преобразовать строку кода utf-8 в строку?

    Печать BFS (двоичное дерево) в порядке уровня с _специфическим форматированием_

    Как я могу получить ключевое имя записи в Model () для GAE для Python?

    Как внешнее заполнение модели Django?

    Как удалить \ n из элемента списка?

    Как решить несколько независимых временных рядов одновременно с использованием модели линейной регрессии scikit

    Сделать прогнозы с использованием графика тензорного потока из модели keras

    добавление пути к файлу sys.path в python

    Python scikit-learn: экспорт обученного классификатора

    Python Присоединение файлов csv, где ключ является первым значением столбца

    Python - лучший язык программирования в мире.