13.6. plistlib — Mac OS X .plistファイルの生成と解析—Pythonドキュメント

提供:Dev Guides
< PythonPython/docs/2.7/library/plistlib
移動先:案内検索

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 を使用してください。

も参照してください

PListのマニュアルページ
ファイル形式に関するAppleのドキュメント。


このモジュールは、次の関数を定義します。

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"]