用pickle存储Python的原生对象方法


Posted in Python onApril 28, 2017

在Python中存储数据到文件中时,简单的做法是调用open函数执行文件写入操作,但是这样做的话,当我们要重新读取文件内容时,就会出现类型不匹配的情况,因为读取的都是字符串的形式,所以还需要进行类型转换,这样不简洁。

或者使用eval函数把字符串转换为对象,但是有时它过于强大,它会执行Python的任何表达式,甚至做出威胁系统正常工作的表达式,这样做不安全。

如果想存储Python原生对象,但又无法信赖文件的数据来源,那么pickle模块会是个理想的选择。

pickle模块是能够让我们直接在文件中存储几乎任何Python对象的高级工具,并不要求我们把字符串转换来转换去,像是个超级通用的数据格式化和解析工具。

demo.py:

D = {'name':'Allen', 'age':21}
f = open('p_data.pkl','wb')
import pickle
pickle.dump(D,f)
f.close()

f=open('p_data.pkl','rb')
e=pickle.load(f)
print(e)
print(type(e))

控制台输出:

{'name': 'Allen', 'age': 21}
<class 'dict'>
[Finished in 0.4s]

然后它会在指定路径下生成p_data.pkl文件:

8003 7d71 0028 5804 0000 006e 616d 6571
0158 0500 0000 416c 6c65 6e71 0258 0300
0000 6167 6571 034b 1575 2e

如果控制台提示”attributeError:'module' object has no attribute ‘dump'”,那么很可能是因为你的文件名命名为”pickle.py”,这与内置模块文件重名了,改一下就可以了。。

以上这篇用pickle存储Python的原生对象方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
写了个监控nginx进程的Python脚本
May 10 Python
跟老齐学Python之编写类之一创建实例
Oct 11 Python
Python中threading模块join函数用法实例分析
Jun 04 Python
Python面向对象之类和对象实例详解
Dec 10 Python
Python实现简单查找最长子串功能示例
Feb 26 Python
详解Python安装tesserocr遇到的各种问题及解决办法
Mar 07 Python
python中的逆序遍历实例
Dec 25 Python
深入了解python列表(LIST)
Jun 08 Python
Python Tornado核心及相关原理详解
Jun 24 Python
如何利用python发送邮件
Sep 26 Python
Python通过队列来实现进程间通信的示例
Oct 14 Python
Python读写锁实现实现代码解析
Nov 28 Python
Python标准库之collections包的使用教程
Apr 27 #Python
Golang与python线程详解及简单实例
Apr 27 #Python
Mac中升级Python2.7到Python3.5步骤详解
Apr 27 #Python
详解Python 2.6 升级至 Python 2.7 的实践心得
Apr 27 #Python
Python中创建字典的几种方法总结(推荐)
Apr 27 #Python
Python中index()和seek()的用法(详解)
Apr 27 #Python
Python中几种导入模块的方式总结
Apr 27 #Python
You might like
PHP大转盘中奖概率算法实例
2014/10/21 PHP
php多进程模拟并发事务产生的问题小结
2018/12/07 PHP
javascript 浏览器判断 绑定事件 arguments 转换数组 数组遍历
2009/07/06 Javascript
使用JS进行目录上传(相当于批量上传)
2010/12/05 Javascript
Jquery同辈元素选中/未选中效果的实例代码
2013/08/01 Javascript
js获取会话框prompt的返回值的方法
2015/01/10 Javascript
javascript求日期差的方法
2016/03/02 Javascript
针对BootStrap中tabs控件的美化和完善(推荐)
2016/07/06 Javascript
浅谈jQuery hover(over, out)事件函数
2016/12/03 Javascript
js实现将json数组显示前台table中
2017/01/10 Javascript
Vue.js实现模拟微信朋友圈开发demo
2017/04/20 Javascript
VUE多层路由嵌套实现代码
2017/05/15 Javascript
浅析微信扫码登录原理(小结)
2018/10/29 Javascript
基于Vue-cli快速搭建项目的完整步骤
2018/11/03 Javascript
实例讲解JavaScript截取字符串
2018/11/30 Javascript
JS如何调用WebAssembly编译出来的.wasm文件
2020/11/05 Javascript
vue项目中使用rem,在入口文件添加内容操作
2020/11/11 Javascript
状态机的概念和在Python下使用状态机的教程
2015/04/11 Python
python创建临时文件夹的方法
2015/07/06 Python
通过Python来使用七牛云存储的方法详解
2015/08/07 Python
解决Python 爬虫URL中存在中文或特殊符号无法请求的问题
2018/05/11 Python
深入分析python中整型不会溢出问题
2018/06/18 Python
matplotlib jupyter notebook 图像可视化 plt show操作
2020/04/24 Python
500行python代码实现飞机大战
2020/04/24 Python
Python计算信息熵实例
2020/06/18 Python
python中rc1什么意思
2020/06/19 Python
html5拖曳操作 HTML5实现网页元素的拖放操作
2013/01/02 HTML / CSS
Contém1g官网:巴西彩妆品牌
2020/01/17 全球购物
人力资源部培训专员岗位职责
2014/01/02 职场文书
电子信息专业自荐书
2014/02/04 职场文书
个人借款协议书范本
2014/11/17 职场文书
考试作弊检讨书范文
2015/01/27 职场文书
采购员岗位职责
2015/02/03 职场文书
一文搞懂Redis中String数据类型
2022/04/03 Redis
Python中request的基本使用解决乱码问题
2022/04/12 Python
windows系统搭建WEB服务器详细教程
2022/08/05 Servers