13.6. plistlib — Mac OS X .plistファイルの生成と解析—Pythonドキュメント
13.6。 plistlib — Mac OSXを生成して解析します.plistファイル
バージョン2.6で変更:このモジュールは、以前はMac固有のライブラリでのみ使用可能でしたが、現在はすべてのプラットフォームで使用可能です。
ソースコード: :source: `Lib / plistlib.py`
このモジュールは、主にMac OSXで使用される「プロパティリスト」XMLファイルを読み書きするためのインターフェイスを提供します。
プロパティリスト(.plist
)ファイル形式は、辞書、リスト、数値、文字列などの基本的なオブジェクトタイプをサポートする単純なXMLピクルスです。 通常、最上位のオブジェクトは辞書です。
値には、文字列、整数、浮動小数点数、ブール値、タプル、リスト、辞書(ただし、文字列キーのみ)、 Data または datetime.datetime オブジェクトを指定できます。 文字列値(辞書キーを含む)はUnicode文字列の場合があり、UTF-8として書き出されます。
<data>
plistタイプは、 Data クラスを通じてサポートされます。 これはPython文字列の薄いラッパーです。 文字列に制御文字が含まれている場合は、 Data を使用してください。
このモジュールは、次の関数を定義します。
- plistlib.readPlist(pathOrFile)
plistファイルを読み取ります。 pathOrFile は、ファイル名または(読み取り可能な)ファイルオブジェクトのいずれかです。 解凍されたルートオブジェクト(通常は辞書)を返します。
XMLデータは、 xml.parsers.expat のExpatパーサーを使用して解析されます。不正な形式のXMLで発生する可能性のある例外については、そのドキュメントを参照してください。 不明な要素は、plistパーサーによって単に無視されます。
- plistlib.writePlist(rootObject, pathOrFile)
rootObject をplistファイルに書き込みます。 pathOrFile は、ファイル名または(書き込み可能な)ファイルオブジェクトのいずれかです。
TypeError
は、オブジェクトがサポートされていないタイプであるか、サポートされていないタイプのオブジェクトを含むコンテナーである場合に発生します。
- plistlib.readPlistFromString(data)
- 文字列からplistを読み取ります。 ルートオブジェクトを返します。
- plistlib.writePlistToString(rootObject)
- rootObject をplist形式の文字列として返します。
- plistlib.readPlistFromResource(path, restype='plst', resid=0)
path のリソースフォークからタイプ restype のリソースからplistを読み取ります。 可用性:MacOSX。
ノート
Python 3.xでは、この関数は削除されました。
- plistlib.writePlistToResource(rootObject, path, restype='plst', resid=0)
rootObject をタイプ restype のリソースとして、 path のリソースフォークに書き込みます。 可用性:MacOSX。
ノート
Python 3.xでは、この関数は削除されました。
次のクラスが利用可能です。
- class plistlib.Data(data)
文字列 data の周りに「データ」ラッパーオブジェクトを返します。 これは、plistで使用可能な
<data>
タイプを表すために、plistとの間で変換する関数で使用されます。これには、格納されているPython文字列を取得するために使用できる
data
という1つの属性があります。
13.6.1。 例
plistの生成:
pl = dict(
aString="Doodah",
aList=["A", "B", 12, 32.1, [1, 2, 3]],
aFloat = 0.1,
anInt = 728,
aDict=dict(
anotherString="<hello & hi there!>",
aUnicodeValue=u'M\xe4ssig, Ma\xdf',
aTrueValue=True,
aFalseValue=False,
),
someData = Data("<binary gunk>"),
someMoreData = Data("<lots of binary gunk>" * 10),
aDate = datetime.datetime.fromtimestamp(time.mktime(time.gmtime())),
)
# unicode keys are possible, but a little awkward to use:
pl[u'\xc5benraa'] = "That was a unicode key."
writePlist(pl, fileName)
plistの解析:
pl = readPlist(pathOrFile)
print pl["aKey"]