【问题标题】:Sharing preferences between commandline and GUI programs在命令行和 GUI 程序之间共享首选项
【发布时间】:2011-07-25 17:25:54
【问题描述】:

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

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

谢谢。

【问题讨论】:

  • 认为 python可以访问很多osx框架。如果是这样,我认为是这样,只需将其存储在首选项文件中并以这种方式访问​​它们。就我个人而言,我不喜欢在正常方式之外存储首选项的应用程序。它使最终用户更难找到此类应用程序的内容。

标签: python cocoa macos environment-variables


【解决方案1】:

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

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

【讨论】:

  • 是的,我希望我能免费获得变电站的东西。不过,这是一个宜居的折衷方案。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多