【发布时间】:2009-10-03 00:40:49
【问题描述】:
我想为我拥有的各种文件夹制作一些标签云,但不幸的是,我似乎找不到在 Windows Vista 中访问文件标签的方法。我尝试查看 win32 模块和 os.stat,但似乎找不到方法。我可以得到一些帮助吗?
【问题讨论】:
标签: python windows-vista tags
我想为我拥有的各种文件夹制作一些标签云,但不幸的是,我似乎找不到在 Windows Vista 中访问文件标签的方法。我尝试查看 win32 模块和 os.stat,但似乎找不到方法。我可以得到一些帮助吗?
【问题讨论】:
标签: python windows-vista tags
我使用了 win32 扩展包以及我找到的一些演示代码。我在this thread 上发布了该过程的详细说明。我不想在这里全部复制,但这里是简短的版本(点击前面的链接了解详细信息)。
property_sets 方法(提供必要的文件路径)。该方法返回一个可迭代的生成器对象。请参阅以下示例代码和输出。(至少在 XP 中这对我有用。)
例如
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
【讨论】:
str 代替 unicode 并更新了 try except 声明
显然,您需要使用Windows Search API 查找System.Keywords——您可以通过ctypes 直接访问API,或通过API 的COM Interop 程序集间接访问(需要win32 extensions)。抱歉,我没有要检查的 vista 安装,但我希望这些链接有用!
【讨论】:
Windows 似乎将标签存储在文件中。 只需标记任何图像并打开图像在记事本中并查找一些XML -like(RDF) 你会在那里找到你的标签。嗯......现在我们知道它们确实存储在文件中,但我们仍然不知道如何操作它们。
但谷歌是救援。我用谷歌搜索:windows 元数据 api
发现了这个:http://blogs.msdn.com/pix/archive/2006/12/06/photo-metadata-apis.aspx
【讨论】:
文档属性实际上有 2 种不同的实现方式 (source)。
COM 实现将它们直接嵌入文件本身:例如,这是用于 Office 文档的方法。本页描述的 Tim Golden 的代码非常适合这些。
在 NTFS 5(Win2k 或更高版本)上,您可以将摘要信息添加到任何文件,并将其存储在备用数据流中。我想 Windows Search API 可以处理这些,但我还没有测试过。
【讨论】: