Mac OS X Finder использует концепцию «пакеты», чтобы сделать содержимое определенных папок непрозрачным для пользователя. Я использую os.walk()
для перечисления дерева каталогов, и я хочу пропустить перечисление на таких пакетах, как пакеты приложений.Определите каталоги, которые являются пакетами в Mac OS X с Python
Утилита командной строки mdls
может использоваться для проверки того, установлен ли com.apple.package
в атрибуте kMDItemContentTypeTree
. Единственный/лучший способ определить, стоит ли папке упаковать в os.system
и использовать mdls
после обнаружения того, что ОС действительно является darwin?
В отличие от этого решения, похоже, зависит от метаданных Spotlight, которые, как я понимаю, заполнены от самих файлов/каталогов. Это заставляет меня задаться вопросом, есть ли способ проверить, является ли каталог пакетом за пределами mdls
. Возможно, я что-то упустил.
Если вы решите пойти с 'mdls', назовем его с [модуль подпроцесса] (http://docs.python.org/2.7/library/subprocess.html#replacing -os-system) вместо 'os.system'. – nofinator
Спасибо за это, @nofinator –