• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > 从零学python系列之浅谈pickle模块封装和拆封数据对象的方法

从零学python系列之浅谈pickle模块封装和拆封数据对象的方法

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了python pickle,python中的pickle模块,python pickle模块,python pickle.dump,python3 pickle等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

封装是一个将Python数据对象转化为字节流的过程,拆封是封装的逆操作,将字节文件或字节对象中的字节流转化为Python数据对象,不要从不收信任的数据源中拆封数据。可以封装和拆封几乎任何Python数据对象,主要包括:

    None , True,False
    整数,浮点数,复数
    字符串,字节,ByteArray对象
    元组,列表,集合,包含可封装对象的字典
    在一个模块的顶层定义的函数
    在一个模块的顶层定义的内置函数
    那是在一个模块的顶层定义的类
    __dict__或调用__getstate__()的结果是可封装的类的实例

 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应用实例:

with open("my_profile.txt", "wb") as myprofile: 
    pickle.dump({"name":"AlwaysJane", "age":"20+", "sex":"female"}, myprofile)

with open("my_profile.txt", "rb") as get_myprofile:
    print (pickle.load(get_myprofile))
</div>

class Profile:
    name = "AlwaysJane"

pickledclass = pickle.dumps(Profile)
print (pickledclass)
print (pickle.loads(pickledclass))
</div>

理解不是很透彻,希望大神们指正错误。。。

附上参考文档

</div>

您可能想查找下面的文章:

  • 用pickle存储Python的原生对象方法
  • 详解Python之数据序列化(json、pickle、shelve)
  • Python中的数据对象持久化存储模块pickle的使用示例
  • Python pickle模块用法实例分析
  • Python pickle模块用法实例分析
  • Python pickle模块用法实例
  • python持久性管理pickle模块详细介绍
  • Python pickle类库介绍(对象序列化和反序列化)
  • Python 序列化 pickle/cPickle模块使用介绍
  • Python pickle类库介绍(对象序列化和反序列化)

相关文章

  • Python import自定义模块方法
  • Python实现的异步代理爬虫及代理池
  • Python selenium 三种等待方式详解(必会)
  • Android应用开发中Action bar编写的入门教程
  • Python中的map、reduce和filter浅析
  • Python操作SQLite简明教程
  • 深入解读Python解析XML的几种方式
  • python调用Moxa PCOMM Lite通过串口Ymodem协议实现发送文件
  • Python二叉搜索树与双向链表转换实现方法
  • Python在Console下显示文本进度条的方法

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
    • 从零学Python之入门(三)序列
    • pyqt和pyside开发图形化界面
    • Python对list列表结构中的值进行去重的方法总结
    • 布同自制Python函数帮助查询小工具
    • Django发送html邮件的方法
    • 解决Python中由于logging模块误用导致的内存泄露
    • 简单介绍Python中的JSON模块
    • Python中尝试多线程编程的一个简明例子
    • python中MySQLdb模块用法实例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有