Applescript モジュールを使用して Python で AppleScript 関数を作成していますが、次の関数の一般化に問題があります。
scpt = applescript.AppleScript('''
on code()
tell application "System Events"
key code 123 using command down
end tell
end code
''')
次のように、キーコードとキーダウン変数を入力パラメーターにできるようにします。
scpt = applescript.AppleScript('''
on code(kc, extras)
tell application "System Events"
key code kc extras
end tell
end code
''')
しかし、次の実行時エラーが発生します。
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "example.py", line 28, in <module>
''')
File "build/bdist.macosx-10.7-intel/egg/applescript/__init__.py", line 49, in __init__
applescript.ScriptError: Expected end of line but found application constant or consideration. (-2741) range=410-414
そのため、構文に何か問題があると思います。
Mac 0SX 10.7.5、python 2.7.1 を使用しています。
編集
このコードは、example.py という名前の python モジュールにあります。モジュール内のコードとまったく同じコードを次に示します。
import applescript
scpt = applescript.AppleScript('''
on code(kc, extras)
tell application "System Events"
key code kc extras
end tell
end code
''')
次のようにコマンドラインから呼び出しています。
$ python
Python 2.7.1 (r271:86832, Aug 5 2011, 03:30:24)
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import example as e
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "example.py", line 9, in <module>
''')
File "build/bdist.macosx-10.7-intel/egg/applescript/__init__.py", line 49, in __init__
applescript.ScriptError: Expected end of line but found identifier. (-2741) range=90-96
ここで、9 行目はモジュールの最後の行です -- ''')。