Python pickle

来源:互联网 发布:产品在淘宝没有展现 编辑:程序博客网 时间:2024/06/06 21:42

存储的过程

import pickletest_data = ['Save me!', 123.456, True]f = file('test.data', 'w')pickle.dump(test_data, f)f.close()
取存储的过程:

f = file('test.data')test_data = pickle.load(f)f.close()print test_data

结果:

['Save me!', 123.456, True]


如果你想保存多个对象,一种方法是把这些对象先全部放在一个序列中,在对这个序列进行存储:
a = 123
b = "hello"
c = 0.618
data = (a, b, c)
...
pickle.dump(data, f)

另一种方法就是依次保存和提取:
...
pickle.dump(a, f)
pickle.dump(b, f)
pickle.dump(c, f)
...
x = pickle.load(f)
y = pickle.load(f)
z = pickle.load(f)

dump 方法可以增加一个可选的参数,来指定用二进制来存储:
pickle.dump(data, f, True)
而 load 方法会自动检测数据是二进制还是文本格式,无需手动指定。

Python 还提供了另一个模块 cPickle,它的功能及用法和 pickle 模块完全相同,只不过它是用C语言编写的,因此要快得多(比pickle快1000倍)。因此你可以把上述代码中的 pickle 全部替换为 cPickle,从而提高运行速度(尽管在这个小程序中影响微乎其微)。


0 0
原创粉丝点击