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)
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 ...
在Mac下,
appscript
是一个与应用程序通信交互的强大工具。用
Python
的
appscript
模块,可以在不用学习
appscript
的情况下也能做到与很多应用程序交互的功能。
打开Mac的终端,安装很简单:
sudo easy_install
appscript
然后运行i
python
,先来试一个简单有趣的例子:
Python
代码
使用
Python
可以通过
调用
Mac OS X系统提供的
AppleScript
应用程序,来启动和关闭Mac系统上的程序。下面是一个简单的脚本示例,可以帮助您实现这一目的:import subprocess
启动应用程序
subprocess.call(['
osascript
','-e','tell application "AppName" to launch'])
关闭应用程序
subproces...
好吧,可能你已经迫不及待的想要去大显身手了;但是了解的太少的话,你变出的花样就少很多了。所以我希望你耐着性子,把这篇文章看完。假如你有一些编程功底,你马上都能用
AppleScript
实现一些简单的算法了。
AppleScript
有4种最基本的数据类型,number,string,list和record,分别对应编程概念中的数值,字符串,数组和字典。我也不清楚Apple为什么在AppleStr
抱歉,这个问题有些棘手,因为
Python
程序是跨平台的,但是它们并不是直接可
执行
的二进制文件。在Windows上打包
Python
程序通常
使用
pyinstaller或者cx_Freeze等工具,但是这些工具不支持直接将
Python
程序打包成
苹果
可
执行
文件。
如果你想在
苹果
上运行
Python
程序,你需要安装
Python
环境,并在终端中运行
Python
程序。或者你可以
使用
一些第三方工具,如Py2App或者cx_Freeze for Mac等,将
Python
程序打包成Mac上的应用程序。但是这些工具的操作过程比较复杂,需要一些额外的配置和编译步骤,需要花一些时间去学习和了解。