Skip to content

[Python] 在程式碼中執行 AppleScript 語法

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


Read More

Leave a Reply