Как разрешить, что “внутренняя таблица переполняется” в Applescript

При попытке загрузить файл XML/plist iTunes, я получаю "внутреннее переполнение таблицы". После поиска с помощью Google похоже, что в Applescript закончилась память. Файл является 18 meg на диске, поэтому в то время как на большей стороне вещей, он должен все еще работать над Mac с 2 концертами.

Как я могу разрешить это?

Очевидно, так как это создается 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
5
задан Bill 4 January 2010 в 07:33
поделиться

1 ответ

Я полагаю, что AppleScript просто не предназначен для обработки такого количества данных. Некоторое время назад я пытался использовать AppleScript и пытался сделать что-то подобное (чтение библиотеки iTunes). Первоначальное намерение AppleScript состояло в том, чтобы автоматизировать приложения, отправляя им события AppleEvents, что в сочетании со странным синтаксисом AppleScript сильно сбивает с толку и затрудняет выполнение множества простых вещей.

Спустя некоторое время я решил использовать Python вместо этого, поскольку он предоставляет простой модуль для чтения файлов plist: http://docs.python.org/dev/library/plistlib.html

Возможно не то, что вы хотели услышать, но проблема AppleScript в том, что он легко перегружается данными, поскольку абстракция данных, с которыми он работает, довольно громоздка и занимает много памяти.

Я уверен, что если вы попробуете Python, у вас будет что-то запущенное менее чем за час. Python по умолчанию установлен на всех Mac, и его действительно легко изучить.

2
ответ дан 15 December 2019 в 06:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: