バリケンのPython日記 RSSフィード

2008-08-20

[] pickleモジュール  pickleモジュール - バリケンのPython日記 を含むブックマーク はてなブックマーク -  pickleモジュール - バリケンのPython日記  pickleモジュール - バリケンのPython日記 のブックマークコメント

pickleモジュールを使うと、リストや辞書などの複雑なデータ型をファイルに保存することができるよ。ちなみに、RubyではMarshalというモジュールが似たような感じだね。

pickle.dump(オブジェクト, ファイル)とすると、指定したファイルに対してオブジェクトを書き出すよ。pickle.dumpするには、対象となるファイルは書き込み可能で開かれている必要があるよ。

逆にpickle.load(ファイル)で、ファイルからオブジェクトを取り出すよ。pickle.loadするには、対象となるファイルは読み込み可能で開かれている必要があるよ。

以下、簡単な例だよ。

>>> import pickle
>>> f = open('list.txt', 'w')
>>> pickle.dump([1, 2, 'hoge', 4, 5, 'fuga'], f)
>>> f.close()
>>> f = open('list.txt')
>>> l = pickle.load(f)
>>> f.close()
>>> l
[1, 2, 'hoge', 4, 5, 'fuga']
>>> f = open('dict.txt', 'w')
>>> pickle.dump({'hoge': 'fuga', 'foo': 'bar'}, f)
>>> f.close()

ちなみに、上記で作成したlist.txtは次のような内容になっているよ。

(lp0
I1
aI2
aS'hoge'
p1
aI4
aI5
aS'fuga'
p2
a.

おまけにdict.txtは次のような内容になっているよ。

(dp0
S'foo'
p1
S'bar'
p2
sS'hoge'
p3
S'fuga'
p4
s.
トラックバック - http://python.g.hatena.ne.jp/muscovyduck/20080820