XML、特に Apple の .plist フォーマットとの間でオブジェクトを読み込んでシリアル化する必要があります。Pythonでそれを行う最も賢い方法は何ですか? 既製のソリューションはありますか?
質問する
1952 次
2 に答える
7
plistlibをチェックしてください。
于 2009-05-18T18:54:30.003 に答える
2
Mac を使用していると仮定すると、PyObjC を使用できます。
以下は、 Using Python For System Administrationのスライド 27からの plist からの読み取りの例です。
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 で開くと、ファイルはとてもきれいに見えます。
于 2009-08-11T15:45:50.743 に答える