Как получить теги файла в списке с помощью Python (Windows Vista)? - PullRequest
3 голосов
/ 03 октября 2009

Я хочу создать что-то вроде облака тегов для разных имеющихся у меня папок, но, к сожалению, я не могу найти способ доступа к тегам файла в Windows Vista. Я попытался посмотреть на модуль win32 и os.stat, но я не могу найти способ. Могу ли я получить помощь по этому вопросу?

Ответы [ 4 ]

6 голосов
/ 01 мая 2011

Я пошел по этому поводу с пакетом расширений win32 вместе с некоторым демонстрационным кодом, который я нашел. Я разместил подробное объяснение процесса на этой теме . Я не хочу воспроизводить все это здесь, но вот короткая версия (нажмите на ссылку выше для деталей).

  1. Загрузите и установите расширение pywin32 .
  2. Возьмите код Тим Голден написал для этой самой задачи.
  3. Сохраните код Тима как модуль на своем компьютере.
  4. Вызовите метод property_sets вашего нового модуля (предоставив необходимый путь к файлу). Метод возвращает объект генератора, который является итеративным. См. Следующий пример кода и вывод.

(Это работает для меня в XP, по крайней мере.)

1022 * Е.Г. *

import your_new_module
propgenerator= your_new_module.property_sets('[your file path]')
    for name, properties in propgenerator:
        print name
        for k, v in properties.items ():
            print "  ", k, "=>", v

Вывод приведенного выше кода будет выглядеть примерно так:

DocSummaryInformation
   PIDDSI_CATEGORY => qux
SummaryInformation
   PIDSI_TITLE => foo
   PIDSI_COMMENTS => flam
   PIDSI_AUTHOR => baz
   PIDSI_KEYWORDS => flim
   PIDSI_SUBJECT => bar
4 голосов
/ 03 октября 2009

Очевидно, вам нужно использовать API поиска Windows для поиска System.Keywords - вы можете получить доступ к API напрямую через ctypes или косвенно (требуются расширения win32 ) через сборку API COM Interop . Извините, у меня нет установки Vista для проверки, но я надеюсь, что эти ссылки полезны!

2 голосов
/ 03 октября 2009

Похоже, что Windows хранит теги в файлах . Просто отметьте любое изображение и откройте изображение в блокноте и найдите что-то XML -подобно ( RDF ) и вы найдете там свой тег. Ну ... теперь мы знаем, что они действительно хранятся в файлах, но мы до сих пор не знаем, как ими манипулировать.

Но гугл на помощь. Я погуглил: API метаданных Windows

и нашел это: http://blogs.msdn.com/pix/archive/2006/12/06/photo-metadata-apis.aspx

1 голос
/ 02 июля 2012

На самом деле существует 2 различных варианта свойств документа ( источник ).

  1. Реализация COM внедряет их непосредственно в сам файл: такой подход используется, например, для документов Office. Код Тима Голдена, описанный на этой странице, хорошо работает для них.

  2. В NTFS 5 (Win2k или новее) вы можете добавить сводную информацию в любой файл, и она будет храниться в альтернативных потоках данных. Я полагаю, что API поиска Windows будет работать на них, но я не проверял его.

...