gpt4 book ai didi

python - 如何使用 PyObjC 绑定(bind)和 NSMetadataQuery 编写与 mdfind 等效的 python 脚本?

转载 作者:太空宇宙 更新时间:2023-11-04 06:30:01 24 4
gpt4 key购买 nike

我想编写与 mdfind 等效的 python。我想使用 .Spotlight-V100 元数据,但找不到所用元数据数据库格式的描述,但 NSMetadataQuery 似乎是我所需要的。我想使用内置的 Obj-C 绑定(bind)在 python 中执行此操作,但无法找出正确的咒语来使其工作。不确定问题是调用的异步性质还是我只是错误地将事物连接在一起。

一个给出“mdfind”等价物的简单例子就可以作为开始。

最佳答案

我得到了一个非常简单的版本。我的谓词不太正确,因为等效的 mdfind 调用有额外的结果。此外,它需要两个参数,第一个是要使用的基本路径名,第二个是搜索词。

代码如下:

from Cocoa import *

import sys

query = NSMetadataQuery.alloc().init()
query.setPredicate_(NSPredicate.predicateWithFormat_("(kMDItemTextContent = \"" + sys.argv[2] + "\")"))
query.setSearchScopes_(NSArray.arrayWithObject_(sys.argv[1]))
query.startQuery()
NSRunLoop.currentRunLoop().runUntilDate_(NSDate.dateWithTimeIntervalSinceNow_(5))
query.stopQuery()
print "count: ", len(query.results())
for item in query.results():
print "item: ", item.valueForAttribute_("kMDItemPath")

查询调用是异步的,所以为了更完整,我应该注册一个回调并让运行循环连续运行。实际上,我搜索了 5 秒,所以如果我们有一个需要更长时间的查询,我们将只能得到部分结果。

关于python - 如何使用 PyObjC 绑定(bind)和 NSMetadataQuery 编写与 mdfind 等效的 python 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3992003/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com