gpt4 book ai didi

python - 通过 Python 和 Ruby 访问 OSX 默认系统的更简单方法?

转载 作者:数据小太阳 更新时间:2023-10-29 08:06:10 26 4
gpt4 key购买 nike

最近我热衷于在 OSX 中存储用于我的测试脚本的各种设置 defaults系统,因为它允许我将各种脚本保存在 git 中并将它们推送到 github,而不必担心将密码/设置/等硬编码到脚本中。

使用简单的 bash 命令编写 shell 脚本时,很容易使用反引号调用默认二进制文件来读取首选项,如果读取首选项出错,脚本将停止执行,您可以看到错误和修理它。当我尝试在 Python 或 Ruby 中做类似的事情时,它往往会有点烦人,因为您必须做额外的工作来检查默认值的返回码以查看是否有错误。

我一直在尝试通过 google 断断续续地搜索一个使用 OSX 默认系统的库,当“默认”是您的查询字符串的一部分时,这最终会变得有些困难。

我想尝试直接读取 plist 文件,但我发现的 plist 库(例如内置的 python 库)似乎只能读取 XML 文件(不是二进制文件),这是个问题如果我用默认程序设置任何东西,因为它会将它转换回二进制 plist。

最近,在尝试再次搜索 Python 库时,我将搜索词更改为使用 NSUserDefaults 之类的东西(我现在忘记了确切的词),我发现了一个名为 userdefaults 的 Python 库。但它是为旧版本的 OSX (10.2) 和旧版本的 Python (2.3) 开发的,我没有太多运气让它在 OSX 10.6 和 Python 2.6 上编译

理想情况下,我希望找到一个库,它可以通过类似于以下 python psudo 代码的方式轻松读取(并作为奖励写入)OSX 默认系统。

from some.library.defaults import defaults
settings = defaults('com.example.app')
print settings['setting_key']

由于我也开始更多地使用Ruby,所以我也想找一个具有类似功能的Ruby库。

可能我最终不得不“放弃”并围绕默认二进制文件编写我自己的简单库,但我认为尝试查询其他人以查看是否存在现有解决方案不会有什么坏处。

最佳答案

你会想要使用 PyObjC:看看 this article at mactech.com (具体来说:向下滚动到“通过 Python 访问 plists”)。和 this article from oreilly在 PyObjC 上。运行这个,例如:

from Foundation import *
standardUserDefaults = NSUserDefaults.standardUserDefaults()
persistentDomains = standardUserDefaults.persistentDomainNames()
persistentDomains.objectAtIndex_(14)
aDomain = standardUserDefaults.persistentDomainForName_(persistentDomains[14])
aDomain.keys()

关于python - 通过 Python 和 Ruby 访问 OSX 默认系统的更简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5038339/

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