--- 生成与解析 Apple.plist文件¶
此模块提供了可读写 Apple "property list" 文件的接口,它主要用于 macOS 和iOS 系统。 此模块同时支持二进制和 XML plist 文件。
property list (.plist) 文件格式是一种简单的序列化格式,它支持一些基本对象类型,例如字典、列表、数字和字符串等。 通常使用一个字典作为最高层级对象。
要写入和解析 plist 文件,请使用dump()和load()函数。
要以字节串对象形式操作 plist 数据,请使用dumps()和loads()。
值可以为字符串、整数、浮点数、布尔值、元组、列表、字典(但只允许用字符串作为键)、bytes、bytearray或datetime.datetime对象。
在3.4 版更改:新版 API,旧版 API 已被弃用。 添加了对二进制 plist 格式的支持。
在3.8 版更改:添加了在二进制 plist 中读写UID令牌的支持,例如用于 NSKeyedArchiver 和NSKeyedUnarchiver。
在3.9 版更改:旧API 已被移除。
参见
针对该文件格式的 Apple 文档。
这个模块定义了以下函数:
plistlib.load(fp,*,fmt=None,dict_type=dict)¶
读取 plist 文件。fp 应当可读并且为二进制文件对象。 返回已解包的根对象(通常是一个字典)。
fmt 为文件的格式,有效的值如下:
None: 自动检测文件格式
FMT_XML: XML 文件格式
FMT_BINARY: 二进制 plist 格式
dict_type 为字典用来从 plist 文件读取的类型。
FMT_XML格式的 XML 数据 会使用来自xml.parsers.expat的Expat 解析器 -- 请参阅其文档了解错误格式 XML 可能引发的异常。 未知元素将被 plist 解析器直接略过。
当文件无法被解析时二进制格式的解析器将引发InvalidFileException。
3.4 新版功能.
plistlib.loads(data,*,fmt=None,dict_type=dict)¶
从一个 bytes 对象加载 plist。 参阅load()获取相应关键字参数的说明。
3.4 新版功能.
plistlib.dump(value,fp,*,fmt=FMT_XML,sort_keys=True,skipkeys=False)¶
将value 写入 plist 文件。Fp 应当可写并且为二进制文件对象。
fmt 参数指定 plist 文件的格式,可以是以下值之一:
FMT_XML: XML 格式的 plist 文件
FMT_BINARY: 二进制格式的 plist 文件
当sort_keys 为真值(默认)时字典的键将经过排序再写入 plist,否则将按字典的迭代顺序写入。
当skipkeys 为假值(默认)时该函数将在字典的键不为字符串时引发TypeError,否则将跳过这样的键。
如果对象是不受支持的类型或者是包含不受支持类型的对象的容器则将引发TypeError。
对于无法在(二进制)plist 文件中表示的整数值,将会引发OverflowError。
3.4 新版功能.
plistlib.dumps(value,*,fmt=FMT_XML,sort_keys=True,skipkeys=False)¶
将value 以plist 格式字节串对象的形式返回。 参阅dump()的文档获取此函数的关键字参数的说明。
3.4 新版功能.
可以使用以下的类:
classplistlib.UID(data)¶
包装一个int。 该类将在读取或写入 NSKeyedArchiver 编码的数据时被使用,其中包含 UID(参见 PList 指南)。
It has one attribute,data, which can be used to retrieve the int value of the UID.datamust be in the range0