applescript - 如何在 Applescript 中解决 "internal table overflow"

标签 applescript

尝试加载 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

最佳答案

我猜 AppleScript 根本不是用来处理这么多数据的。不久前我也尝试使用 AppleScript 并尝试做类似的事情(阅读 iTunes 库)。 AppleScript 的初衷是通过向应用程序发送 AppleEvents 来自动化应用程序——这与 AppleScript 的怪异语法相结合,会造成很多困惑,并且很难做很多简单的事情。

经过一段令人沮丧的时间后,我决定改用 Python,因为它提供了一个简单的模块来读取 plist 文件:http://docs.python.org/dev/library/plistlib.html

可能不是您想听到的,但 AppleScript 的问题在于它很容易被数据重载,因为它所处理的数据抽象相当庞大并且占用大量内存。

我敢肯定,如果您尝试一下 Python,您将在不到一个小时的时间内启动并运行一些东西。 Python 默认安装在所有 Mac 上,并且非常容易学习。

关于applescript - 如何在 Applescript 中解决 "internal table overflow",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1997392/

相关文章:

sed - 使用 Applescript 和 sed 在文本文件中进行替换

macos - 苹果权限 hell : osascript and Accessibility (Assistive Access)

macos - 如何判断菜单项是否为 'checked' ?

macos - 使用 AppleScript 创建 Finder 别名

xcode - 来自 Xcode 的 Applescript 术语列表

JavaScript/AppleScript : Get current time of html video

macos - 如何获取 iTunes 选择的文件路径

cocoa - 如何使用 Perl 中的 OS-X ScriptingBridge 框架关闭窗口?

javascript做shell脚本

applescript - 如何使用 AppleScript 在预览中打开文档的路径?