我正在使用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版本。在
有没有关于可能会发生什么的想法,或者我如何远程排除这些问题?在
自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之后,它就解决了。在
相关问题 更多 >
编程相关推荐