Вопрос

Мне нужно читать и сериализовать объекты из XML и в него, в частности, в формат Apple .plist.Какой самый разумный способ сделать это в Python?Есть ли готовые решения?

Это было полезно?

Решение

Проверить plistlib.

Другие советы

Предполагая, что вы используете Mac, вы можете использовать PyObjC.

Вот пример чтения из списка, из Использование Python для системного администрирования, слайд 27.

from Cocoa import NSDictionary

myfile = "/Library/Preferences/com.apple.SoftwareUpdate.plist"
mydict = NSDictionary.dictionaryWithContentsOfFile_(myfile)

print mydict["LastSuccessfulDate"]

# returns: 2009-08-11 08:38:01 -0600

И пример записи в plist (который я написал):

#!/usr/bin/env python

from Cocoa import NSDictionary, NSString

myfile = "~/test.plist"
myfile = NSString.stringByExpandingTildeInPath(myfile)

mydict = {"Nice Number" : 47, "Universal Sum" : 42}
mydict["Vector"] = (10, 20, 30)
mydict["Complex"] = [47, "i^2"]
mydict["Truth"] = True

NSDictionary.dictionaryWithDictionary_(mydict).writeToFile_atomically_(myfile, True)

Когда я затем бегу defaults read ~/test в bash я получаю:

{
    Complex =     (
        47,
        "i^2"
    );
    "Nice Number" = 47;
    Truth = 1;
    "Universal Sum" = 42;
    Vector =     (
        10,
        20,
        30
    );
}

И файл выглядит очень красиво, если открыть его в Property List Editor.app.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top