Содержание страницы
13.5. plistlib – Генерация и разбор Mac OS X .plist файлов¶plistlib – Generate and parse Mac OS X .plist files
Этот модуль предоставляет интерфейс для чтения и записи XML-файлов «property list», используемых в основном в Mac OS X.
Формат файла property list (.plist) – это простой XML-сериализатор, поддерживающий базовые типы объектов, такие как словари, списки, числа и строки. Обычно объект верхнего уровня является словарём.
Для записи и разбора plist-файла используйте функции writePlist() и readPlist().
Для работы с данными plist в виде объектов bytes используйте writePlistToBytes() и readPlistFromBytes().
Значения могут быть строками, целыми числами, числами с плавающей запятой, булевыми значениями, кортежами, списками, словарями (только со строковыми ключами), объектами Data или datetime.datetime. Строковые значения (включая ключи словарей) должны быть строками Unicode – они будут записаны в UTF-8.
Тип plist <data> поддерживается через класс Data. Это тонкая обёртка вокруг объекта bytes в Python. Используйте Data, если строки содержат управляющие символы.
См. также
- Страница руководства PList
- Документация Apple по формату файлов.
Этот модуль определяет следующие функции:
- plistlib.readPlist(pathOrFile)¶
Читает файл plist. pathOrFile может быть именем файла или файловым объектом, открытым для чтения. Возвращает распакованный корневой объект (обычно это словарь).
XML-данные разбираются с помощью синтаксического анализатора Expat из xml.parsers.expat – обратитесь к его документации за сведениями о возможных исключениях при некорректном XML. Неизвестные элементы просто игнорируются анализатором plist.
- plistlib.writePlist(rootObject, pathOrFile)¶
Записывает rootObject в файл plist. pathOrFile может быть именем файла или файловым объектом, открытым для записи.
Исключение TypeError будет возбуждено, если объект имеет неподдерживаемый тип или является контейнером, содержащим объекты неподдерживаемых типов.
- plistlib.readPlistFromBytes(data)¶
- Читает plist-данные из объекта bytes. Возвращает корневой объект.
- plistlib.writePlistToBytes(rootObject)¶
- Возвращает rootObject в виде bytes-объекта в формате plist.
Доступен следующий класс:
- class plistlib.Data(data)¶
Возвращает объект-обёртку «data» вокруг байтового объекта data. Используется в функциях преобразования из plist-формата и обратно для представления типа <data>, доступного в plist-файлах.
У него есть один атрибут data, который можно использовать для получения хранящегося в нём объекта bytes языка Python.
13.5.1. Примеры¶Examples
Генерация 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!>",
aThirdString = "M\xe4ssig, Ma\xdf",
aTrueValue = True,
aFalseValue = False,
),
someData = Data(b"<binary gunk>"),
someMoreData = Data(b"<lots of binary gunk>" * 10),
aDate = datetime.datetime.fromtimestamp(time.mktime(time.gmtime())),
)
writePlist(pl, fileName)
Разбор plist:
pl = readPlist(pathOrFile)
print(pl["aKey"])