python plistlib文件被cocoa值入侵?

2024-05-15 01:19:08 发布

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

我正在使用plistlib在OS X中创建和更新一个简单的plist文件。挪威的一个测试人员从plistlib得到一个错误:

File "../axeomatic2/normal/build/pyi.darwin/aomDSP/out03-PYZ.pyz/plistlib", line 406, in parse
xml.parsers.expat.ExpatError: not well-formed (invalid token): line 1, column 8

查看在他的系统上生成的plist文件,我看到这样的字段散布在预期的条目中:

^{pr2}$

如果我从我的系统中给他一个plist,它工作得很好,但是任何时候程序决定它需要从头开始创建一个plist,它就会得到一个错误。在

我以为这可能是编码问题,但我们都是在OSX10.7上,而且都在使用UTF-8的OSX版本。在

有没有关于可能会发生什么的想法,或者我如何远程排除这些问题?在


Tags: 文件buildos系统错误linefileplist
3条回答

自python3.4以来,plistlib中添加了二进制plist支持。 https://docs.python.org/3.4/library/plistlib.html

实际上有两类plist格式。一个实际上是简单的XML文件(它plistlib知道如何用expat解析),另一个是binary property list。在

不幸的是,它们都共享相同的后缀.plist,而且苹果的所有工具都透明地处理它们(例如,您不知道使用的是XML plist还是二进制plist,使用的工具是defaults

正如@northtree所说,biplist包是读/写二进制plist文件的正确工具。在

更新:

您还可以使用OSX附带的plutil(1)将任何plist文件转换回XML格式,然后由plistlib处理

https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/plutil.1.html

我以前也遇到过类似的问题,在我尝试biplist之后,它就解决了。在

相关问题 更多 >

    热门问题