【Python】Shell、Apple Script に引数を渡して戻り値を取得する方法

Python から Shell 経由で Apple Script のコードを使う。

Pythonファイル(test.py)


import subprocess

if __name__ == '__main__':

    cmd = "/usr/bin/osascript /applescript/test.scpt 123"
    rtn = subprocess.check_output(cmd.split()).decode('utf-8')
    print(rtn)

・os モジュール も使えるが非推奨なので、subprocess を使う。

・shellコマンド は半角スペース単位で、配列にして設定する。

・返り値はバイト文字列なのでデコードする。

Apple Script ファイル(test.scpt)

use scripting additions

on run argv

    set test1 to ""

    if (count of argv) > 0 then
        -- 引数ありの場合の処理
        set test1 to (item 1 of argv)
    else
        -- 引数なしの場合の処理
    end if

    return "test = " & test1

end run

Pythonファイルの表示結果

test = 123

参考サイト