在重新组织图像时,出于对OSX Mavericks的期待,我正在编写一个脚本以将标签插入xattr图像文件的字段中,以便可以使用Spotlight搜索它们。(为了安全起见,我也在编辑EXIF。)
我的问题是:
最好使用哪个属性?_kMDItemUserTags似乎是OSX版本,但kMDItemOMUserTagsOpenMeta已在使用它。理想情况下,我希望将与Linux和OSX向前兼容。
如何设置多个标签?是用逗号或空格分隔还是其他?
作为示例,使用python xattr模块,我发出了以下命令:
xattr.setxattr(FileName, "_kMDItemUserTags", "Name - Sample")
xattr.setxattr(FileName, "kMDItemOMUserTags", "Name,Institution,Sample")
Run Code Online (Sandbox Code Playgroud)
我也看到这些标签的记载:kOMUserTags和kMDItemkeywords,但不知道他们是否有可能实现?
编辑:进一步的调查表明,对于在10.8中可搜索的事物,
此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 …Run Code Online (Sandbox Code Playgroud) 我试图递归地从文件夹的所有内容中删除所有标签(OS X 10.9的新功能之一)。由于文件夹中有很多文件(并且文件夹中包含更多文件),因此我想尝试使用Applescript来简化此过程。我在网上看过,没有发现任何有用的信息。
另外,我在Finder或Standard Additions词典中找不到任何对我有帮助的内容。
可能是这样的:
set folder to "folder_path"
set files to (all files of folder)
for each file:
check for tag (optional)
remove all tags from file
Run Code Online (Sandbox Code Playgroud)
PS。上面的代码应该作为脚本功能的指南,而不是使其工作的确切代码。