pickle--序列化python对象

1.将对象转储到文件中

>>> import pickle
>>> class a:
...     def __init__(self):
...             pass
...     def toString(self):
...             print('i am a')
... 
>>> a1=a()
>>> with open('k','wb') as f:
...     pickle.dump(a1,f)
...

2.将对象转储为字符串可用pickle.dumps

>>> p=pickle.dumps(a1)

3.如果从文件或者字符串中获取该对象可使用pickle.load和pickle.loads方法

>>> #从文件中恢复对象
>>> r=open('k','rb')
>>> a2=pickle.load(r)
>>> r.close()
>>> #从字符串中恢复对象
>>> s=pickle.dumps(a1)
>>> s
b'\x80\x03c__main__\na\nq\x00)\x81q\x01.'
>>> a3=pickle.loads(s)
>>> a3
<__main__.a object at 0x7fe23f3c13c8>

对于大部分程序来讲,掌握load和dump方法即可高效利用pickle模块了。pickle模块可以兼容大部分Python数据类型和用户自定义的类实例。

猜你喜欢

转载自my.oschina.net/u/3264690/blog/1137806