从零学python系列之浅谈pickle模块封装和拆封数据对象的方法
封装是一个将Python数据对象转化为字节流的过程,拆封是封装的逆操作,将字节文件或字节对象中的字节流转化为Python数据对象,不要从不收信任的数据源中拆封数据。可以封装和拆封几乎任何Python数据对象,主要包括: None , True,False pickle模块中常用的方法有: 1. pickle.dump(obj,file,protocol=None,) 必填参数obj表示将要封装的对象 必填参数file表示obj要写入的文件对象,file必须以二进制可写模式打开,即“wb” 可选参数protocol表示告知pickler使用的协议,支持的协议有0,1,2,3,默认的协议是添加在Python 3中的协议3, 其他的协议详情见参考文档 2. pickle.load(file,*,fix_imports=True,encoding="ASCII",errors="strict") 必填参数file必须以二进制可读模式打开,即“rb”,其他都为可选参数 3. pickle.dumps(obj):以字节对象形式返回封装的对象,不需要写入文件中 4. pickle.loads(bytes_object): 从字节对象中读取被封装的对象,并返回 pickle模块可能出现三种异常: 1. PickleError:封装和拆封时出现的异常类,继承自Exception 2. PicklingError: 遇到不可封装的对象时出现的异常,继承自PickleError 3. UnPicklingError: 拆封对象过程中出现的异常,继承自PickleError pickle应用实例: 复制代码 代码如下: import pickle with open("my_profile.txt","wb") as myprofile: with open("my_profile.txt","rb") as get_myprofile: 复制代码 代码如下: import pickle class Profile: pickledclass = pickle.dumps(Profile) 理解不是很透彻,希望大神们指正错误。。。 附上参考文档 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |