Sérialisation d'un objet Python à XML (Apple .plist)
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?
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