Ответ 1
Вы можете использовать мост PyObjC:
>>> from Foundation import *
>>> s = NSAppleScript.alloc().initWithSource_("tell app \"Finder\" to activate")
>>> s.executeAndReturnError_(None)
Есть ли способ выполнить (и получить результат) код AppleScript из python без использования служебной программы командной строки osascript
или appscript (который я действительно не хочу использовать (я думаю?), потому что он больше не разрабатывался/не поддерживался/не рекомендовался)?
Обоснование: в еще один вопрос, который я только что опубликовал, я описываю странное/нежелательное поведение, которое я испытываю при запуске AppleScript через osascript
. Поскольку я на самом деле вызываю его из python script, я задавался вопросом, есть ли способ маршрутизировать вокруг osascript
вообще, поскольку, похоже, проблема заключается в том, что, но applicationcript (очевидный выбор?) Выглядит рискованным сейчас...
Вы можете использовать мост PyObjC:
>>> from Foundation import *
>>> s = NSAppleScript.alloc().initWithSource_("tell app \"Finder\" to activate")
>>> s.executeAndReturnError_(None)
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