AppleScript 是在 MacOS 等作業系統上的一種腳本,可以很好地調用到在 MacOS 等作業系統上其他程式語言難以調用的功能。比方說:自定義一個應用程式視窗尺寸。
而在我透過 AppleScript 結合 MacOS 上的 Automator 工具製作快捷鍵功能後,我驚覺這些快捷鍵啟動的速度,其實非常非常地慢。
考量到啟動速度,我開始進行一些除了 Automator 之外的執行方法,意外發現了透過 Bash、甚至 Python 等腳本程式直接執行 AppleScript 的方法。
本文則紀錄如何在 Python 中執行 AppleScript。
Python 中的 AppleScript
在 Python 中執行 AppleScript 我認為有兩種方法:
- 直接使用
os.system()
執行系統指令 - 使用別人包裝過的 applescript 套件
我個人比較傾向第一種,因為簡單明快。不過既然發現了這個套件,一併紀錄也沒有什麼損失。
方法一: 使用 applescript 套件
首先我們需要使用以下指令安裝此套件:
pip3 install applescript
安裝結束後,我們先來撰寫要執行的 AppleScript(以使用 Dialog 元件為範例):
set Message to "You have a new message!" display dialog Message
我們將其儲存命名為 dialog.applescript。
接著再撰寫 Python 程式來執行這份檔案。
# coding: utf-8 import applescript def main(): r = applescript.run("dialog.applescript") r.code if __name__ == "__main__": main()
Output:
方法二: 使用 os.system() 直接執行
# coding: utf-8 import os def main(): # Command cmd = """osascript -e ' set Message to "You have a new message!" display dialog Message ' """ # Execute os.system(cmd) if __name__ == "__main__": main()
Output:
References
- https://pypi.org/project/applescript/
- https://stackoverflow.com/questions/2940916/how-do-i-embed-an-applescript-in-a-python-script