当前位置: 首页 > news >正文

企业建站源代码室内设计师培训网

企业建站源代码,室内设计师培训网,有那种网站的浏览器,中国建设银行网站网上银行迷途小书童的 Note 读完需要 7分钟 速读仅需 3 分钟 大家好#xff0c;我是迷途小书童#xff01; 在 Python 开发中#xff0c;我们经常需要将对象数据保存到磁盘#xff0c;或者通过网络传输对象信息。这时就需要序列化#xff0c;Pickle 库为我们提供了极为方便的对象序… 迷途小书童的 Note 读完需要 7分钟 速读仅需 3 分钟 大家好我是迷途小书童 在 Python 开发中我们经常需要将对象数据保存到磁盘或者通过网络传输对象信息。这时就需要序列化Pickle 库为我们提供了极为方便的对象序列化功能。本文将全面解析 Pickle 的工作机制、典型应用及示例代码希望可以帮助初学者快速掌握这个实用的内置模块。 1     简介 pickle 模块实现了对一个 Python 对象结构的二进制序列化和反序列化。pickling 是将 Python 对象及其所拥有的层次结构转化为一个字节流的过程而 unpickling 是相反的操作会将字节流转化回一个对象层次结构。 Python 中几乎所有的数据类型(列表字典集合类等)都可以用 pickle 来序列化。 2     常用方法 pickle 模块提供了以下方法让序列化和反序列化的过程更加方便 dump 方法pickle.dump(obj, file, protocolNone, *, fix_importsTrue, buffer_callbackNone)将对象 obj 序列化以后的对象写入已打开的文件对象中。参数 protocol 是序列化模式默认值为 0表示以文本的形式序列化。protocol 的值还可以是 1 或 2表示以二进制的形式序列化。dumps 方法pickle.dumps(obj, protocolNone, *, fix_importsTrue, buffer_callbackNone)将 obj 封存以后的对象作为 bytes 类型直接返回而不是将其写入到文件对象中。各参数与 dump 中的一样。load 方法pickle.load(file, *, fix_importsTrue, encodingASCII, errorsstrict, buffersNone)从已打开文件对象中读取序列化后的对象重建其中特定对象的层次结构并返回。pickle 协议版本是自动检测出来的所以不需要参数来指定协议。封存对象以外的其他字节将被忽略。loads 方法pickle.loads(data, /, *, fix_importsTrue, encodingASCII, errorsstrict, buffersNone)重建并返回 data 的对象层级结构。data 是序列化后的 bytes 对象。 3     示例代码 首先来看看序列化的过程分别将字符串、字典和列表进行序列化使用 dump 方法 (demo) PS C:\Users\Administrator ipython Python 3.7.6 (default, Jan 8 2020, 20:23:39) [MSC v.1916 64 bit (AMD64)] Type copyright, credits or license for more information IPython 7.12.0 -- An enhanced Interactive Python. Type ? for help.In [1]: aString xugaoxiang.comIn [2]: aDict {p: python, r: rust, s: swift}In [3]: aList [one, two, three]In [5]: f open(test.pkl, wb)In [6]: pickle.dump(aString, f, True) IPython.core.display.Javascript objectIn [7]: pickle.dump(aDict, f, True) IPython.core.display.Javascript objectIn [8]: pickle.dump(aList, f, True) IPython.core.display.Javascript objectIn [9]: f.close()In [10]: 这时候在目录 C:\Users\Administrator 就生成了二进制文件 test.pkl 接下来开始反序列化 In [11]: f open(test.pkl, wb)In [12]: pickle.dump(aString, f, True) IPython.core.display.Javascript objectIn [13]: pickle.dump(aDict, f, True) IPython.core.display.Javascript objectIn [14]: pickle.dump(aList, f, True) IPython.core.display.Javascript objectIn [15]: f.close()In [16]: f1 open(test.pkl, rb)In [17]: lString pickle.load(f1) IPython.core.display.Javascript objectIn [18]: lString Out[18]: xugaoxiang.comIn [19]: lDict pickle.load(f1) IPython.core.display.Javascript objectIn [20]: lDict Out[20]: {p: python, r: rust, s: swift}In [21]: lList pickle.load(f1) IPython.core.display.Javascript objectIn [22]: lList Out[22]: [one, two, three]In [23]: f1.close() 通过以上代码可以看到反序列化的过程跟序列化的顺序一样这一点跟数据结构中的队列很像。 4     文件对象不可以序列化 python 不能序列化文件对象或者任何带有对文件对象引用的对象因为在反序列化时无法保证它可以重建该文件的状态。看下面的示例 In [32]: f open(test.pkl, wb)IPython.core.display.Javascript object In [33]: p pickle.dumps(f) IPython.core.display.Javascript object --------------------------------------------------------------------------- TypeError Traceback (most recent call last) ipython-input-33-671076828a70 in module ---- 1 p pickle.dumps(f)TypeError: cannot serialize _io.BufferedWriter objectIn [34]: 5     可移植性 pickle 文件格式独立于机器的体系结构这也就意味着可以在 linux 下创建一个 pickle然后将它发送到在 Windows 或 MacOS 下运行的 Python 程序。而且当 python 版本升级时也不必担心已有的 pickle 操作出现问题可以向后兼容。 6     免费社群
http://www.dnsts.com.cn/news/138395.html

相关文章:

  • 网站开发南京招聘惠州规划建设局网站
  • 为什么大公司开发网站农业电商平台有哪些
  • 萍乡网站建设哪家好图片 网站开发
  • 贵州省住房和城乡建设厅官方网站首页公众号 微网站开发
  • 苏州网站建设集团国际教育机构网站建设开发方案
  • 咨询服务网站源码爱客crm登陆
  • 安阳网站建设服务路由器做网站服务器
  • 上海平台网站建设公云建站网址
  • 咸阳企业网站建设网站设计师发展方向
  • 网站设计的优点河北网站制作 网站开发
  • 小榄公司网站建设wordpress修改logo地址
  • 作网站清理优化大师
  • 求手机网站天津公司网站制作
  • 兰州seo新站优化招商天津网站建设学习
  • 双语网站后台怎么做建设网站对公司起什么作用
  • 个人可以做医疗信息网站吗做站群的网站怎么来
  • 技术支持 桂林网站建设重庆的网站设计公司
  • 承德网站开发公司wordpress增加中英文切换
  • 网站建设选哪家上海网页设计公司山东济南兴田德润简介
  • 网上银行登录入口温州快速排名优化
  • wordpress 做分销公司网站关键词优化怎么做
  • 中山建设厅网站首页线上注册公司流程和费用
  • 企业信息查询单在哪打印沧州做网站优化
  • 济南天桥区网站建设公司甘肃城乡建设局安全质量网站
  • 贵阳市住房和城乡建设厅网站自助贸易免费建站
  • 自己做发卡网站长安庆市住房和建设厅网站
  • 婚庆网站建设必要性免费背景图片素材网
  • 做网站是什么专业建设一个网站的所有代码
  • 化妆品网站优势个人做网站需要多少钱
  • php网站开发预算文档4399网站开发人员 被挖走