Документация Python неофициальный перевод
Содержание страницы

plistlib – Генерация и разбор .plist-файлов Mac OS Xplistlib – Generate and parse Mac OS X .plist files

Этот модуль предоставляет интерфейс для чтения и записи XML-файлов «property list», используемых в основном в Mac OS X.

Формат файла property list (.plist) – это простой XML-сериализатор, поддерживающий базовые типы объектов, такие как словари, списки, числа и строки. Обычно объект верхнего уровня является словарём.

Значениями могут быть строки, целые числа, числа с плавающей точкой, булевы значения, кортежи, списки, словари (но только со строковыми ключами), объекты Data или datetime.datetime. Строковые значения (включая ключи словаря) могут быть строками Unicode – они будут записаны в кодировке UTF-8.

Тип plist <data> поддерживается через класс Data. Это тонкая обёртка вокруг строки Python. Используйте Data, если ваши строки содержат управляющие символы.

См. также

Справочная страница PList <http://developer.apple.com/documentation/Darwin/Reference/ManPages/man5/plist.5.html>
Документация Apple по формату файлов.

Этот модуль определяет следующие функции:

plistlib.readPlist(pathOrFile)

Читает файл plist. pathOrFile может быть именем файла или файловым объектом, открытым для чтения. Возвращает распакованный корневой объект (обычно это словарь).

XML-данные разбираются с помощью синтаксического анализатора Expat из xml.parsers.expat – обратитесь к его документации за сведениями о возможных исключениях при некорректном XML. Неизвестные элементы просто игнорируются анализатором plist.

plistlib.writePlist(rootObject, pathOrFile)

Записывает rootObject в файл plist. pathOrFile может быть именем файла или файловым объектом, открытым для записи.

Исключение TypeError будет возбуждено, если объект имеет неподдерживаемый тип или является контейнером, содержащим объекты неподдерживаемых типов.

plistlib.readPlistFromString(data)
Читает plist из строки. Возвращает корневой объект.
plistlib.writePlistToString(rootObject)
Возвращает rootObject в виде строки в формате plist.

Доступен следующий класс:

class plistlib.Data(data)

Возвращает объект-обёртку «data» вокруг строки data. Используется в функциях преобразования из plist и в plist для представления типа <data>, доступного в plist-файлах.

Имеет один атрибут data, который можно использовать для получения хранящейся в нём строки Python.

Примеры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!>",
        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 возможны, но не совсем удобны в использовании:
pl[u'\xc5benraa'] = "That was a unicode key."
writePlist(pl, fileName)

Разбор plist:

pl = readPlist(pathOrFile)
print(pl["aKey"])