13.6. plistlib — 生成和解析 Mac OS X .plist 文件 — Python 文档
13.6. 库 — 生成和解析 Mac OS X.plist 档案
2.6 版本变更: 该模块以前只在 Mac 专用库中可用,现在可用于所有平台。
源代码: :source:`Lib/plistlib.py`
该模块提供了一个用于读写 Mac OS X 主要使用的“属性列表”XML 文件的接口。
属性列表 (.plist
) 文件格式是一种简单的 XML pickle,支持基本对象类型,如字典、列表、数字和字符串。 通常顶级对象是字典。
值可以是字符串、整数、浮点数、布尔值、元组、列表、字典(但仅限于字符串键)、Data 或 datetime.datetime 对象。 字符串值(包括字典键)可能是 unicode 字符串——它们将被写成 UTF-8。
<data>
plist 类型通过 Data 类支持。 这是一个围绕 Python 字符串的薄包装器。 如果您的字符串包含控制字符,请使用 Data。
该模块定义了以下功能:
- plistlib.readPlist(pathOrFile)
读取 plist 文件。 pathOrFile 可以是文件名或(可读)文件对象。 返回解压后的根对象(通常是字典)。
XML 数据使用来自 xml.parsers.expat 的 Expat 解析器进行解析——有关格式错误的 XML 的可能异常,请参阅其文档。 未知元素将被 plist 解析器简单地忽略。
- plistlib.writePlist(rootObject, pathOrFile)
将 rootObject 写入 plist 文件。 pathOrFile 可以是文件名或(可写)文件对象。
如果对象属于不受支持的类型或包含不受支持类型的对象的容器,则将引发
TypeError
。
- plistlib.readPlistFromString(data)
- 从字符串中读取 plist。 返回根对象。
- plistlib.writePlistToString(rootObject)
- 将 rootObject 作为 plist 格式的字符串返回。
- plistlib.readPlistFromResource(path, restype='plst', resid=0)
从 path 的资源分支中读取类型为 restype 的资源的 plist。 可用性:Mac OS X。
笔记
在 Python 3.x 中,此功能已被删除。
- plistlib.writePlistToResource(rootObject, path, restype='plst', resid=0)
将 rootObject 作为类型为 restype 的资源写入 path 的资源分支。 可用性:Mac OS X。
笔记
在 Python 3.x 中,此功能已被删除。
以下类可用:
- class plistlib.Data(data)
返回围绕字符串 data 的“数据”包装对象。 这用于从/向 plists 转换的函数,以表示 plists 中可用的
<data>
类型。它有一个属性
data
,可用于检索存储在其中的 Python 字符串。
13.6.1. 例子
生成一个plist:
pl = dict(
aString="Doodah",
aList=["A", "B", 12, 32.1, [1, 2, 3]],
aFloat = 0.1,
anInt = 728,
aDict=dict(
anotherString="<hello & hi there!>",
aUnicodeValue=u'M\xe4ssig, Ma\xdf',
aTrueValue=True,
aFalseValue=False,
),
someData = Data("<binary gunk>"),
someMoreData = Data("<lots of binary gunk>" * 10),
aDate = datetime.datetime.fromtimestamp(time.mktime(time.gmtime())),
)
# unicode keys are possible, but a little awkward to use:
pl[u'\xc5benraa'] = "That was a unicode key."
writePlist(pl, fileName)
解析 plist:
pl = readPlist(pathOrFile)
print pl["aKey"]