如何从python编写OS X Finder注释?

时间:2015-01-03 20:27:38

标签: python

我正在开发一个python脚本,它根据OS X Yosemite中的各种输入创建大量图像文件。我正在尝试将用于创建每个文件的输入写为'Finder comments',因为每个文件都是创建的,因此如果输出在视觉上很有趣,我可以查看生成文件的特定输入值。我已经确认这可以通过Apple脚本轻松完成。

tell application "Finder" to set comment of (POSIX file "/Users/mgarito/Desktop/Random_Pixel_Color/2015-01-03_14.04.21.png" as alias) to {Val1, Val2, Val3} as Unicode text

之后,在选择文件并显示其信息(cmd + i)后,Finder注释会清楚地显示预期文本'Val1,Val2,Val2'。

通过在使用applescript之前和之后运行mdls [File / Path / Name]进一步确认这一点,这清楚地表明已正确添加了预期的文本。

问题是我无法弄清楚如何将其合并到我的python脚本中以保存自己。

我认为解决方案应该是* VarList = [Var1, Var2, Var3] Fiele = [File/Path/Name] file.os.system.add(kMDItemFinderComment, VarList)

的效果

作为附注,我还看了xattr -w [Attribute_Name] [Attribute_Value] [File / Path / Name],但发现虽然这将存储属性,但它不会存储在所需的位置。相反,它最终出现在附属的pList中,这不是我所追求的。

2 个答案:

答案 0 :(得分:1)

经过多次挖掘,我找到了一个python applescript包:https://pypi.python.org/pypi/py-applescript

这让我得到了一个可行的答案,但如果有人有更好的选择,我还是更喜欢在python中本地做这个?


导入applescript

NewFile =' [文件/路径/名称]'
评论="差不多......"

AddComment = applescript.AppleScript('''

on run {arg1, arg2}
   tell application "Finder" to set comment of (POSIX file arg1 as alias) to arg2 as Unicode text
   return
end run

''&#39)

print(AddComment.run(NewFile,Comment))

打印"完成"

答案 1 :(得分:1)

这是我的方法。

首先,您需要使用pip install applescript命令安装applesctipt软件包。

这是注释任何文件的功能:

def set_comment(file_path, comment_text):
    import applescript
    applescript.tell.app("Finder", f'set comment of (POSIX file "{file_path}" as alias) to "{comment_text}" as Unicode text')

然后我就这样使用它:

set_comment('/Users/UserAccountName/Pictures/IMG_6860.MOV', 'my comment')