用于二进制plist的Python模块

10 投票
2 回答
5781 浏览
提问于 2025-04-16 04:13

有没有哪个Python项目或者模块可以用来写二进制plist文件?我现在在做一个REST的实现,需要这个功能。比如,我希望服务器发送的HTTP响应中包含一个二进制plist,而不是json。我的服务器是Apache,已经安装了mod_python和django。我在考虑在输出格式中增加bplist格式,除了json,这样可以简化iPhone上的解析,同时减少数据传输。

我在考虑自己写一个,但如果能为一个现有的项目贡献代码,那就更好了。

提前谢谢大家。

2 个回答

2

那在默认的Python发行版中,plistlib怎么样呢?从Python 2.6开始,它在所有平台上都可以使用;在Python 2.6之前,它只在Mac版本中包含。不过,如果你真的需要支持旧版本的Python,可以从Python 2.6中获取源代码,然后进行移植。

更新:抱歉,我刚意识到你需要支持二进制plist格式。在这种情况下,可以使用libplist,它同时支持二进制和XML格式。这个库是用C++写的,但他们提供了一个SWIG接口定义文件,SWIG可以很容易地为它生成一个Python模块。Ubuntu/Debian也有一个叫做python-plist的包,里面包含了预编译的二进制文件。

14

我之前担心自己可能需要学习SWIG,自己动手实现这个功能,或者为了这个涉及解析二进制plist的兴趣项目而换一种语言。不过我快速用pip search plist查了一下,发现了一个叫biplist的库。

撰写回答