将AppleScript转换为Python appscript(`do javascript`)

1 投票
2 回答
1967 浏览
提问于 2025-04-16 23:37

这是一个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是一个关键字吗?还是我发给应用程序的一个命令?javascriptdo的一个参数吗?还是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 工具,链接在 这里。不过,由于某些应用程序的脚本定义有些小问题和错误,这个工具并不总是能成功转换,但它是个不错的起点。

撰写回答