蟒蛇plistlib文件由可可值侵略?(python plistlib file invaded b

2019-06-25 07:07发布

我使用plistlib创建和更新OS X.在挪威测试仪正从plistlib错误一个简单的plist文件:

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文件,我看到这样与预期项穿插字段:

NSTableView Sort Ordering       Array
...
NSTableView Hidden Columns      Array
...
NSTableView Columns             Array
...
NSNavLastRootDirectory          Array

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

我想也许这是一个编码的问题,但我们都在OS X 10.7和两个使用UTF-8的OS X版本。

任何想法,以什么可能发生的事情,或者我怎么可能远程解决呢?

Answer 1:

我以前有类似的问题,在我尝试biplist ,它解决了。



Answer 2:

二进制的plist支持已被添加到plistlib因为Python 3.4。 https://docs.python.org/3.4/library/plistlib.html



Answer 3:

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

遗憾的是他们都共享相同后缀.plist ,以及所有从苹果的工具,透明地对待他们(例如,你不这样做,知道你是用XML的plist或二进制的plist工作使用工具,如defaults

就像@northtree表示, biplist包是读/写二进制plist文件的工具。

更新:

您还可以使用plutil(1)随OSX任何转换plist文件恢复到XML格式,然后通过处理plistlib

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



文章来源: python plistlib file invaded by cocoa values?
标签: python plist