تسلسل كائن بيثون XML (.plist أبل)
سؤال
ولست بحاجة لقراءة وتسلسل الكائنات من وإلى XML، شكل أبل .plist على وجه الخصوص. ما هي الطريقة الأكثر ذكاء للقيام بذلك في بيثون؟ هل هناك أي حلول جاهزة؟
المحلول
plistlib .
نصائح أخرى
وعلى افتراض انك على ماك، يمكنك استخدام PyObjC.
وهنا مثال على القراءة من بليست، من عن طريق بيثون للنظام إدارة ، مرر 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
ومثال على الكتابة إلى بليست (التي كتبت):
#!/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)
عند I ثم تشغيل defaults read ~/test
في باش، وأحصل على:
{
Complex = (
47,
"i^2"
);
"Nice Number" = 47;
Truth = 1;
"Universal Sum" = 42;
Vector = (
10,
20,
30
);
}
وملف تبدو لطيفة جدا عندما افتتح في قائمة الممتلكات Editor.app.
لا تنتمي إلى StackOverflow