Is there any way to execute (and obtain the results of) AppleScript code from python without using the osascript
command-line utility or appscript (which I don't really want to use (I think?) because it's no longer developed/supported/recommended )?
Rationale: in another question I've just posted , I describe a strange/undesired behaviour I'm experiencing with running some AppleScript via osascript
. As I'm actually calling it from a python script, I wondered if there was a way to route around osascript
altogether, since that seems to be where the problem lies - but appscript (the obvious choice?) looks risky now...
You can use the PyObjC bridge:
>>> from Foundation import *
>>> s = NSAppleScript.alloc().initWithSource_("tell app \"Finder\" to activate")
>>> s.executeAndReturnError_(None)
PyPI is your friend...
http://pypi.python.org/pypi/py-applescript
Example:
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
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.