Question

Je dois lire et sérialisation des objets et de XML, le format .plist d'Apple en particulier. Quelle est la façon la plus intelligente de le faire en Python? Y a-t-il des solutions toutes prêtes?

Était-ce utile?

La solution

Consultez plistlib .

Autres conseils

En supposant que vous êtes sur un Mac, vous pouvez utiliser PyObjC.

Voici un exemple de lecture d'un plist, de En utilisant Python Pour système administration, glisser 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

Et un exemple d'écrire à un plist (que j'ai écrit):

#!/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)

Quand je lance alors dans defaults read ~/test bash, je reçois:

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

Et le fichier est très joli lorsqu'il est ouvert dans la liste des propriétés Editor.app.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top