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

plistlib.md

106 строк · 6.3 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/2.7/library/plistlib.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 13.6. [`plistlib`](https://python-all.ru/2.7/library/plistlib.html#module-plistlib) – Generate and parse Mac OS X `.plist` files89Изменено в версии 2.6: Ранее этот модуль был доступен только в библиотеке для Mac, теперь он доступен для всех платформ.1011**Исходный код:** [Lib/plistlib.py](https://python-all.ru/src/2.7/Lib/plistlib.py)1213---1415Этот модуль предоставляет интерфейс для чтения и записи XML-файлов «property list», используемых в основном в Mac OS X.1617Формат файла property list (`.plist`) – это простой XML pickle, поддерживающий базовые типы объектов, такие как словари, списки, числа и строки. Обычно объект верхнего уровня является словарём.1819Значения могут быть строками, целыми числами, числами с плавающей запятой, булевыми значениями, кортежами, списками, словарями (но только со строковыми ключами), [`Data`](https://python-all.ru/2.7/library/plistlib.html#plistlib.Data) или [`datetime.datetime`](https://python-all.ru/2.7/library/datetime.html#datetime.datetime) объектами. Строковые значения (включая ключи словарей) могут быть Unicode-строками – они будут записаны в UTF-8.2021Тип plist `<data>` поддерживается через класс [`Data`](https://python-all.ru/2.7/library/plistlib.html#plistlib.Data). Это тонкая обёртка вокруг строки Python. Используйте [`Data`](https://python-all.ru/2.7/library/plistlib.html#plistlib.Data), если строки содержат управляющие символы.2223> **См. также**24>25> **[Страница руководства PList](https://python-all.ru/2.7/library/plistlib.html)**26>27> Документация Apple по формату файлов.2829Этот модуль определяет следующие функции:3031#### `plistlib.readPlist(pathOrFile)`3233Читает файл plist. *pathOrFile* может быть именем файла или файловым объектом, открытым для чтения. Возвращает распакованный корневой объект (обычно это словарь).3435XML-данные разбираются с помощью парсера Expat из [`xml.parsers.expat`](https://python-all.ru/2.7/library/pyexpat.html#module-xml.parsers.expat) – обратитесь к его документации за информацией о возможных исключениях при некорректном XML. Неизвестные элементы просто игнорируются парсером plist.3637#### `plistlib.writePlist(rootObject, pathOrFile)`3839Записывает *rootObject* в файл plist. *pathOrFile* может быть именем файла или файловым объектом, открытым для записи.4041[`TypeError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.TypeError) будет возбуждено, если объект имеет неподдерживаемый тип или является контейнером, содержащим объекты неподдерживаемых типов.4243#### `plistlib.readPlistFromString(data)`4445Читает plist из строки. Возвращает корневой объект.4647#### `plistlib.writePlistToString(rootObject)`4849Возвращает *rootObject* в виде строки в формате plist.5051#### `plistlib.readPlistFromResource(path, restype='plst', resid=0)`5253Читает plist из ресурса с типом *restype* из ресурсной ветви *path*. Доступно в Mac OS X.5455> **Примечание**56>57> В Python 3.x эта функция была удалена.5859#### `plistlib.writePlistToResource(rootObject, path, restype='plst', resid=0)`6061Записывает *rootObject* как ресурс с типом *restype* в ресурсную ветвь *path*. Доступно в Mac OS X.6263> **Примечание**64>65> В Python 3.x эта функция была удалена.6667Доступен следующий класс:6869#### `class plistlib.Data(data)`7071Возвращает объект-обёртку «данные» вокруг строки *data*. Он используется в функциях преобразования из/в список свойств для представления типа `<data>`, доступного в списке свойств.7273У него есть один атрибут `data`, который можно использовать для получения сохранённой в нём строки Python.7475## 13.6.1. Примеры7677Генерация plist:7879```python80pl = dict(81    aString="Doodah",82    aList=["A", "B", 12, 32.1, [1, 2, 3]],83    aFloat = 0.1,84    anInt = 728,85    aDict=dict(86        anotherString="<hello & hi there!>",87        aUnicodeValue=u'M\xe4ssig, Ma\xdf',88        aTrueValue=True,89        aFalseValue=False,90    ),91    someData = Data("<binary gunk>"),92    someMoreData = Data("<lots of binary gunk>" * 10),93    aDate = datetime.datetime.fromtimestamp(time.mktime(time.gmtime())),94)95# ключи Unicode возможны, но не совсем удобны в использовании:96pl[u'\xc5benraa'] = "That was a unicode key."97writePlist(pl, fileName)98```99100Разбор plist:101102```python103pl = readPlist(pathOrFile)104print pl["aKey"]105```106