在重新组织我的图像时,为了预期OSX Mavericks,我正在编写一个脚本来将标记插入到我的图像文件的xattr
字段中,以便我可以使用Spotlight搜索它们。 (我也编辑EXIF只是为了安全起见。)通过_kMDItemUserTags或kMDItemOMUserTags在xattr中使用多个关键字
我的问题是:
哪个属性是最好的使用?
_kMDItemUserTags
似乎是OSX版本,但kMDItemOMUserTags
已被OpenMeta使用。我最好喜欢Linux和OSX向前兼容的东西。如何设置多个标签?逗号或空格分隔的还是别的?
作为一个例子,使用Python xattr
模块,我发出这些命令:
xattr.setxattr(FileName, "_kMDItemUserTags", "Name - Sample")
xattr.setxattr(FileName, "kMDItemOMUserTags", "Name,Institution,Sample")
我也看到提及这些标签:kOMUserTags
和kMDItemkeywords
但不知道他们是否容易实现......
编辑:进一步的调查表明,对于事情是10.8搜索,
- 您需要在com.apple.metadata前面加上kMD:
- 您必须使用十六进制编码或包装在plist中。
这Python代码会产生kMDItemFinderComment的标签,它是在聚光灯搜索...
def writexattrs(F,TagList):
""" writexattrs(F,TagList):
writes the list of tags to three xattr field:
'kMDItemFinderComment','_kMDItemUserTags','kMDItemOMUserTags'
This version uses the xattr library """
plistFront = '<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><array>'
plistEnd = '</array></plist>'
plistTagString = ''
for Tag in TagList:
plistTagString = plistTagString + '<string>{}</string>'.format(Tag)
TagText = plistFront + plistTagString + plistEnd
OptionalTag = "com.apple.metadata:"
XattrList = ["kMDItemFinderComment","_kMDItemUserTags","kMDItemOMUserTags"]
for Field in XattrList:
xattr.setxattr (F,OptionalTag+Field,TagText.encode('utf8'))
# Equivalent shell command is xattr -w com.apple.metadata:kMDItemFinderComment [PLIST value] [File name]
我无法得到它与可靠的结果的文件夹上递归工作。
除了链接的问题(在右边),Ask Different有[可能通过终端标记文件夹?](http://apple.stackexchange.com/q/110662/8546)( 2013-11-15) –
谢谢。从那里链接的'tag'程序看起来很有用。 – beroe