当试图加载iTunes XML/plist文件时,我得到"内部表溢出".在谷歌搜索之后,看起来Applescript的内存不足.该文件在磁盘上是18兆,因此在较大的一面,它应该仍然适用于2台演出的Mac.
我该如何解决这个问题?
显然,由于它是由iTunes创建的,我无法控制它的产生.
更新:相关代码段:
tell application "System Events"
tell property list file (itunes_xml_file as string)
tell contents
set my_tracks to value of property list item "Tracks"
repeat with t in items of my_tracks
Run Code Online (Sandbox Code Playgroud)
我猜想 AppleScript 根本就无法处理如此大量的数据。不久前我也尝试过使用 AppleScript 并尝试做类似的事情(读取 iTunes 库)。AppleScript 的初衷是通过向应用程序发送 AppleEvents 来实现应用程序的自动化 - 这与 AppleScript 怪异的语法相结合,造成了很多混乱,并且使得很多简单的事情变得困难。
经过一段令人沮丧的时间后,我决定使用 Python,因为它提供了一个用于读取 plist 文件的简单模块:http://docs.python.org/dev/library/plistlib.html
可能这不是您想听到的,但 AppleScript 的问题是它很容易因数据而过载,因为它所处理的数据抽象相当庞大并占用大量内存。
我确信如果您尝试一下 Python,您将在不到一个小时的时间内启动并运行一些东西。Python 默认安装在所有 Mac 上,并且非常容易学习。
| 归档时间: |
|
| 查看次数: |
1007 次 |
| 最近记录: |