2

我正在尝试使用 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
4

2 回答 2

0

我不知道这在 Python 中是什么等价物,但您可以使用 xattr将扩展属性打印为 XML 属性列表

#!/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并不总是将注释存储在扩展属性中。

于 2012-09-24T06:25:20.727 回答
0

我知道这个问题是几个月前提出的,但这就是我如何通过 Python 和 popen 来关注评论。

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

print out

因此,如果这对您很重要,它使用 mdls 而不是 xattr,但是如果您只是告诉 Popen 发送到哪里STDOUT然后使用.communicate().

于 2013-05-06T14:33:14.767 回答