将AppleScript转换为Python appscript(`do javascript`)
这是一个AppleScript的模板:
tell application "Adobe Photoshop CS5"
set theFile to alias “Application:Documents:MyFile” open theFile
do javascript (file <path to Emboss.jsx>) with arguments { 75,2,89 }
end tell
我想把它转换成Python的appscript。不过,我不知道怎么把do javascript
这部分翻译过来。有没有什么想法?
我甚至不知道该怎么找出答案。也许我对AppleScript了解得太少了。do
是一个关键字吗?还是我发给应用程序的一个命令?javascript
是do
的一个参数吗?还是do javascript
是一个整体(作为一个带空格的命令)?
2 个回答
1
我还是不太清楚怎么把上面的内容翻译过来(更一般来说,我不知道怎么把任何通用的AppleScript代码转换成Python的appscript)。
不过,对于上面的情况,我发现有一个命令叫做do_javascript
。这个命令似乎不是用来执行文件的,而是直接执行给定的JavaScript代码字符串。
比如,这样做是可以的:
from appscript import *
import os, sys
ps = app("Adobe Photoshop CS5")
filelist = sys.argv[1:]
jsCode = """
var g_StackScriptFolderPath = app.path + "/Presets/Scripts/"
var runMergeToHDRFromScript = true;
$.evalFile(g_StackScriptFolderPath + "Merge to HDR.jsx");
mergeToHDR.mergeFilesToHDR(%s, true);
""" % (repr(filelist),)
ps.do_javascript(jsCode)
2
要把普通的 AppleScript
转换成 appscript
,可以使用 appscript
网站上提供的 ASTranslate
工具,链接在 这里。不过,由于某些应用程序的脚本定义有些小问题和错误,这个工具并不总是能成功转换,但它是个不错的起点。