Подтвердить что ты не робот

Вызов AppleScript из Python без использования osascript или appscript?

Есть ли способ выполнить (и получить результат) код AppleScript из python без использования служебной программы командной строки osascript или appscript (который я действительно не хочу использовать (я думаю?), потому что он больше не разрабатывался/не поддерживался/не рекомендовался)?

Обоснование: в еще один вопрос, который я только что опубликовал, я описываю странное/нежелательное поведение, которое я испытываю при запуске AppleScript через osascript. Поскольку я на самом деле вызываю его из python script, я задавался вопросом, есть ли способ маршрутизировать вокруг osascript вообще, поскольку, похоже, проблема заключается в том, что, но applicationcript (очевидный выбор?) Выглядит рискованным сейчас...

4b9b3361

Ответ 1

Вы можете использовать мост PyObjC:

>>> from Foundation import *
>>> s = NSAppleScript.alloc().initWithSource_("tell app \"Finder\" to activate")
>>> s.executeAndReturnError_(None)

Ответ 2

PyPI - ваш друг...

http://pypi.python.org/pypi/py-applescript

Пример:

import applescript

scpt = applescript.AppleScript('''
    on run {arg1, arg2}
        say arg1 & " " & arg2
    end run

    on foo()
        return "bar"
    end foo

    on Baz(x, y)
        return x * y
    end bar
''')

print(scpt.run('Hello', 'World')) #-> None
print(scpt.call('foo')) #-> "bar"
print(scpt.call('Baz', 3, 5)) #-> 15