سؤال

ولست بحاجة لقراءة وتسلسل الكائنات من وإلى XML، شكل أبل .plist على وجه الخصوص. ما هي الطريقة الأكثر ذكاء للقيام بذلك في بيثون؟ هل هناك أي حلول جاهزة؟

هل كانت مفيدة؟

المحلول

نصائح أخرى

وعلى افتراض انك على ماك، يمكنك استخدام 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.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top