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

2024-06-16 14:43:17 发布

您现在位置:Python中文网/ 问答频道 /正文

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

当使用简单的bash命令编写shell脚本时,可以很容易地使用反勾号调用默认二进制来读取首选项,如果读取首选项时出现错误,脚本将停止执行,您可以看到错误并修复它。当我尝试用Python或Ruby做类似的事情时,它往往会变得更加烦人,因为您需要做额外的工作来检查默认值的返回代码,以查看是否有错误。在

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

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

最近,在尝试另一个Python库的搜索时,我使用NSUserDefaults(我现在已经忘记了确切的术语)将搜索词改为某物,我找到了一个名为userdefaults的Python库,但是它是为旧版本的OSX(10.2)和Python(2.3)的旧版本开发的,我没有太多的运气它可以在OSX10.6和Python2.6上编译

理想的情况下,我希望找到一个库,它可以以类似于下面python psudo代码的方式,方便地从OSX默认系统中读取(并作为额外的写入)。在

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

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

也许我最终不得不放弃,用默认的二进制文件编写我自己的简单库,但我想试着查询其他人看看是否存在现有的解决方案。在


Tags: 文件代码gitgithub脚本settings系统错误
1条回答
网友
1楼 · 发布于 2024-06-16 14:43:17

您将希望使用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()

相关问题 更多 >