Содержание страницы
13.6. plistlib – Generate and parse Mac OS X .plist files¶
Изменено в версии 2.6: Ранее этот модуль был доступен только в библиотеке для Mac, теперь он доступен для всех платформ.
Исходный код: Lib/plistlib.py
Этот модуль предоставляет интерфейс для чтения и записи XML-файлов «property list», используемых в основном в Mac OS X.
Формат файла property list (.plist) – это простой XML pickle, поддерживающий
базовые типы объектов, такие как словари, списки, числа и строки. Обычно
объект верхнего уровня является словарём.
Значения могут быть строками, целыми числами, числами с плавающей запятой, булевыми значениями, кортежами, списками, словарями
(но только со строковыми ключами), Data или datetime.datetime
объектами. Строковые значения (включая ключи словарей) могут быть Unicode-строками –
они будут записаны в UTF-8.
Тип plist <data> поддерживается через класс Data. Это
тонкая обёртка вокруг строки 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.readPlistFromString(data)¶ Читает plist из строки. Возвращает корневой объект.
-
plistlib.writePlistToString(rootObject)¶ Возвращает rootObject в виде строки в формате plist.
-
plistlib.readPlistFromResource(path, restype='plst', resid=0)¶ Читает plist из ресурса с типом restype из ресурсной ветви path. Доступно в 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. Он используется в функциях преобразования из/в список свойств для представления типа
<data>, доступного в списке свойств.У него есть один атрибут
data, который можно использовать для получения сохранённой в нём строки Python.
13.6.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!>",
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"]