在命令行和GUI程序之间共享首选项

时间:2011-03-30 00:11:31

标签: python cocoa macos environment-variables

我被一个看似简单的问题所困扰。我有几个首选项,我想从Cocoa应用程序和命令行python脚本访问。首选项主要是磁盘上的事物的位置。由于彼此的位置构建(例如$ LOCA = $ LOCB / stuff),使用环境变量和类似.bash_rc的东西将是理想的。问题是只有命令行程序从.bash_rc继承变量,Cocoa应用程序没有。

存储这些内容的最佳机制是什么,以便python脚本和Cocoa应用程序可以同样访问它们?

感谢。

1 个答案:

答案 0 :(得分:1)

从Python 2.6开始,plistlib模块在​​标准Python中可用。您可以使用它来读取和写入.plist文件(并使用Obj-C中的NSPropertyListSerialization)。 NSPropertyListSerializationplistlib都不会执行您想要的各种替换,因此您必须将其构建到脚本和OS X程序中。

编辑: plistlib只读取和写入XML序列化的.plist文件,而不是二进制格式 - 在您的Obj中使用NSPropertyListXMLFormat_v1_0常量保存.plist时的C代码。