使用python从文件中获取聚光灯注释

时间:2012-09-23 21:53:22

标签: python comments applescript spotlight

我正试图用python获得聚光灯评论。我现在需要的是popen能够在运行相同的东西时返回shell正常输出的内容。一旦我在python中有一个字符串,那么我可以正确过滤它。

import sys, os, glob

paths = glob.glob("*.wav")
print paths

for soundFile in paths:
    #soundFile = os.path.abspath(soundFile)
    result = os.popen("xattr -p com.apple.metadata:kMDItemFinderComment "+soundFile+" | xxd -r -p |plutil -convert xml1 -o - -")
    print result

2 个答案:

答案 0 :(得分:0)

我不知道在Python中这相当于什么,但你可以使用xattr到print the extended attribute as an XML property list

#!/usr/bin/env ruby -KU

require 'cgi'

plist = `xattr -p com.apple.metadata:kMDItemFinderComment test.txt |
xxd -r -p | plutil -convert xml1 -o - -`
puts CGI.unescapeHTML(plist.scan(/<string>(.*?)<\/string>/m)[0][0])

我忘记了mdls -n kMDItemFinderComment。无论如何,Finder doesn't always store the comments in extended attributes

答案 1 :(得分:0)

我知道这个问题是在几个月前被问到的,但这就是我通过Python&amp; amp; POPEN。

cmd = subprocess.Popen(['mdls', '-name', 'kMDItemFinderComment',pathtofile], stderr=subprocess.STDOUT,stdout = subprocess.PIPE )
out,err = cmd.communicate()

print out

所以它使用mdls而不是xattr,如果这对你很重要,但似乎你可以继续使用你构建的xattr命令字符串,如果你只是告诉Popen在哪里发送STDOUT然后使用{{ 1}}。