我试图从一个pict文件中捕获艺术品,并使用python appscript将其嵌入iTunes上的一个曲目中。 我是这样做的:
imFile = open('/Users/kartikaiyer/temp.pict','r')
data = imFile.read()
it = app('iTunes')
sel = it.current_track.get()
sel.artworks[0].data_.set(data[513:])
我收到一个错误,错误:-1731 消息:未知对象
类似的applescript代码如下所示:
tell application "iTunes"
set the_artwork to read (POSIX file "/Users/kartikaiyer/temp.pict") from 513 as picture
set data of artwork 1 of current track to the_artwork
end tell
我尝试使用ASTranslate,但它从未实例化the_artwork
,然后在引用the_artwork
时抛出错误
这是一个老问题,但由于我现在做同样的事情有困难,我想我应该发布我的解决方案,以防其他人可能会受益
希望这有帮助
快速猜测一下,Appscript引用(如AppleScript引用)使用1索引,而不是像Python列表那样使用零索引。所以你可能需要写:
it.current_track.artworks[1].data_.set(...)
(顺便提一下,原始脚本中的额外
get
命令是不必要的,尽管在这种情况下是无害的。)对于ASTranslate,如果您希望它向应用程序和脚本添加发送命令并接收其结果,则需要启用“将事件发送到应用程序”复选框。通常,最好禁用此选项,以便在翻译具有潜在破坏性的命令(如
set
或delete
)时不会发生任何不幸的事故,因此只有在确实需要时才启用此选项,并且在执行此操作时要小心运行的代码read
命令是脚本添加的一部分,ASTranslate不会转换为脚本添加。使用ASDictionary为脚本添加创建粘合剂,方法是单击Dictionary菜单下的“选择已安装的脚本添加”,然后从列表中选择“脚本添加”相关问题 更多 >
编程相关推荐