只是说pickle模块的最简单的使用,如果想要仔细学习pickle的话,可以找一下别的博客,或者阅读一下pickle的源代码、查阅一下文档都是可以的,

那就先看一下如何找到pickle的源程序嘞.......

首先得到pickle的属性和列表,确定其中含有这样的一个属性:'__file__',然后选择这个属性,就可以得到他的源代码........

>>> import pickle
>>> dir(pickle)
['ADDITEMS', 'APPEND', 'APPENDS', 'BINBYTES', 'BINBYTES8', 'BINFLOAT', 'BINGET', 'BININT', 'BININT1', 'BININT2', 'BINPERSID', 'BINPUT', 'BINSTRING', 'BINUNICODE', 'BINUNICODE8', 'BUILD', 'DEFAULT_PROTOCOL', 'DICT', 'DUP', 'EMPTY_DICT', 'EMPTY_LIST', 'EMPTY_SET', 'EMPTY_TUPLE', 'EXT1', 'EXT2', 'EXT4', 'FALSE', 'FLOAT', 'FRAME', 'FROZENSET', 'FunctionType', 'GET', 'GLOBAL', 'HIGHEST_PROTOCOL', 'INST', 'INT', 'LIST', 'LONG', 'LONG1', 'LONG4', 'LONG_BINGET', 'LONG_BINPUT', 'MARK', 'MEMOIZE', 'NEWFALSE', 'NEWOBJ', 'NEWOBJ_EX', 'NEWTRUE', 'NONE', 'OBJ', 'PERSID', 'POP', 'POP_MARK', 'PROTO', 'PUT', 'PickleError', 'Pickler', 'PicklingError', 'PyStringMap', 'REDUCE', 'SETITEM', 'SETITEMS', 'SHORT_BINBYTES', 'SHORT_BINSTRING', 'SHORT_BINUNICODE', 'STACK_GLOBAL', 'STOP', 'STRING', 'TRUE', 'TUPLE', 'TUPLE1', 'TUPLE2', 'TUPLE3', 'UNICODE', 'Unpickler', 'UnpicklingError', '_Framer', '_Pickler', '_Stop', '_Unframer', '_Unpickler', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_compat_pickle', '_dump', '_dumps', '_extension_cache', '_extension_registry', '_getattribute', '_inverted_registry', '_load', '_loads', '_test', '_tuplesize2code', 'bytes_types', 'codecs', 'compatible_formats', 'decode_long', 'dispatch_table', 'dump', 'dumps', 'encode_long', 'format_version', 'io', 'islice', 'load', 'loads', 'maxsize', 'pack', 'partial', 're', 'sys', 'unpack', 'whichmodule']
>>> pickle.__file__
'C:\\Python\\lib\\pickle.py'
>>> 

pickle模块:

pickle实现了对象的序列化......不懂啊,怎么整~~~~~~~~好了,重点要来了:
其实就是对象通过dump转换成字符串存入pkl文件,然后通过load还原成新的对象!

仔细想想的话,对于文件的操作都是不管什么东西都是以字符串或者二进制的形式写到文件里面,然后以字符串的形式或者二进制把它再给拿出来,但是如果把一个列表写到文件中的话,是很简单,但是拿出来的话是一个字符串的形式,然后需要使用list函数再次转化为列表,等等其他的形式都是这样

所以就十分聪明的解决了这样一个问题使用pickle模块,让他拿出来的时候还是一个原始的对象,我们就用代码简单的说一下他最简单的两个函数的应用

dump()将需要放进去的东西转换为字符串写入pkl文件(可以想成把乱七八糟的东西都倒到泡菜缸里,很形象)

load()将文件中的东西拿出来,还原长以前的对象(从缸里拿出来)

import pickle
import os.path
my_list = {'王xx':'贼拉有钱','黄xx':'贼拉帅','阿波':'啥都没有......'}
pickle_file = open('E:\\python_py\\my_list.pkl','wb')#记住这里一定是以二进制的形式写入的
pickle.dump(my_list,pickle_file)
pickle_file.close()
pickle_file = open('E:\\python_py\\my_list.pkl','rb')#这里读取的话一定也要是二进制的形式
my_list = pickle.load(pickle_file)
print (my_list)
print (type(my_list))
print (os.path.exists('E:\\python_py\\my_list.pkl'))
print (os.path.getsize('E:\\python_py\\my_list.pkl'))

python 3 中的pickle模块 阿波的博客相关推荐

  1. 【pickle】详解python中的pickle模块(常用函数、示例)

    1.序列化.反序列化介绍 序列化:把对象转换为字节序列的过程称为对象的序列化. 反序列化:把字节序列恢复为对象的过程称为对象的反序列化. 2.pickle模块说明 python中的pickle模块实现 ...

  2. Python标准库中的pickle模块

     pickle  -  Python对象序列化. pickle模块实现了用于序列化和反序列化Python对象结构的二进制协议."pickle"是将Python对象层次结构转换为 ...

  3. Python 实用爬虫-04-使用 BeautifulSoup 去水印下载 CSDN 博客图片

    Python 实用爬虫-04-使用 BeautifulSoup 去水印下载 CSDN 博客图片 其实没太大用,就是方便一些,因为现在各个平台之间的图片都不能共享,比如说在 CSDN 不能用简书的图片, ...

  4. Python爬虫获取文章的标题及你的博客的阅读量,评论量。所有数据写入本地记事本。最后输出你的总阅读量!

    Python爬虫获取文章的标题及你的博客的阅读量,评论量.所有数据写入本地记事本.最后输出你的总阅读量!还可以进行筛选输出!比如阅读量大于1000,之类的! 完整代码在最后.依据阅读数量进行降序输出! ...

  5. QT发布中遇到的问题 - wufan的专栏 - 博客频道 - CSDN.NET

    QT发布中遇到的问题 - wufan的专栏 - 博客频道 - CSDN.NET QT发布中遇到的问题 分类: qt 2012-04-05 11:15 8人阅读 评论(0) 收藏 举报 最近开始研究qt ...

  6. 分布式系统中的必备良药 —— 服务治理 - Zachary_Fan - 博客园

    分布式系统中的必备良药 -- 服务治理 - Zachary_Fan - 博客园

  7. Python中的pickle模块

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. Pickle模块的作用 Pickle模块用于将python对象序列化为字节流,可存储在文件或数据库中,也可同通过网络进行 ...

  8. 零基础入门学习Python(29)pickle模块

    作用 pickle模块几乎可以把所有Python的对象都转化为二进制的形式存放,这个过程称为pickling,从二进制形式转换为对象的过程称为unpickling. pickle.dump9data, ...

  9. Python数据存储:pickle模块的使用讲解(测试代码)

    在机器学习中,我们常常需要把训练好的模型存储起来,这样在进行决策时直接将模型读出,而不需要重新训练模型,这样就大大节约了时间.Python提供的pickle模块就很好地解决了这个问题,它可以序列化对象 ...

最新文章

  1. js new Date()不带时分秒时,时间变了 问题解决
  2. SPOJ 130 - Rent your airplane and make money(dp+优化)
  3. 【POJ1321棋盘问题】【poj2251Dungeon Master】【poj3278Catch That Cow】【poj1426Find The Multi】
  4. linux下查看mysql的版本
  5. 逆波兰表达式中缀表达式转换为后缀表达式
  6. 在HTML中使用javascript (js高级程序设计)
  7. ASP.NET获取路径的方法
  8. 产品经理如何通过拆产品,持续提升产品能力?附案例
  9. ★LeetCode(292)——Nim 游戏(JavaScript)
  10. 《算法图解》第九章 动态规划
  11. 超好用的数学公式编辑器MathType7.4下载安装及wps配置
  12. 电商设计素材:15000款淘宝促销水印元素模版,手慢的人领不到!...
  13. 机房服务器配置方案文件,机房搬迁实施方案模版
  14. 三菱触摸屏(GS2110)触摸屏经宇电AI-mobdus485通讯转换器与2个宇电70482D7多路温度模块直接通讯实例
  15. 肖飒:币圈新“口袋罪”?
  16. 自定义notepad++ --添加插件SourceCookifier
  17. h5 微信支付 php,用h5做出微信的支付过程的实现步骤
  18. easyexcel复杂表格---包含单元格合并,表格标题,以及自定义字段写入
  19. 归并排序算法代码实现
  20. luminati住宅IP代理的主要类型及资费情况

热门文章

  1. oracle怎么查看实例名
  2. 祝贺!openGauss社区技术委员会主席李国良当选2023 IEEE FELLOW
  3. 高通骁龙870有哪些哪些值得购买 高通骁龙870有什么手机
  4. 安装Oracle11g服务端,客户端,监听,自定义设置教程(傻瓜式安装文档)
  5. windows下配置TensorFlow-GPU完整教程
  6. regiongrowing
  7. 【博球一看,记录疯狂】卡塔尔世界杯四强诞生,谁是你心中的冠军得主?
  8. Android 入门教程:Android Studio 介绍
  9. 到底什么是POJO?
  10. WebRTC 教程一:WebRTC信令、架构和 API 入门