用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 相关文章推荐
Python随机生成数模块random使用实例
Apr 13 Python
基于Python闭包及其作用域详解
Aug 28 Python
Python优先队列实现方法示例
Sep 21 Python
python 多维切片之冒号和三个点的用法介绍
Apr 19 Python
python实现对csv文件的列的内容读取
Jul 04 Python
Python中 map()函数的用法详解
Jul 10 Python
python字典值排序并取出前n个key值的方法
Oct 17 Python
python将txt文件读取为字典的示例
Dec 22 Python
Python3显示当前时间、计算时间差及时间加减法示例代码
Sep 07 Python
学python需要去培训机构吗
Jul 01 Python
Pycharm添加虚拟解释器报错问题解决方案
Oct 13 Python
python - timeit 时间模块
Apr 06 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
解析posix与perl标准的正则表达式区别
2013/06/17 PHP
基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)
2013/06/25 PHP
php检测iis环境是否支持htaccess的方法
2014/02/18 PHP
destoon实现调用热门关键字的方法
2014/07/15 PHP
php使用curl代理实现抓取数据的方法
2017/02/03 PHP
PHP的PDO连接讲解
2019/01/24 PHP
单独使用CKFinder选择图片的方法
2010/08/21 Javascript
json数据的列循环示例
2013/09/06 Javascript
js网页实时倒计时精确到秒级
2014/02/10 Javascript
js函数在frame中的相互调用详解
2014/03/03 Javascript
JQuery鼠标移到小图显示大图效果的方法
2015/06/10 Javascript
浅谈angularjs中响应回车事件
2017/04/24 Javascript
JavaScript制作简单的框选图表
2017/05/15 Javascript
websocket4.0+typescript 实现热更新的方法
2019/08/14 Javascript
使用原生JS实现火锅点餐小程序(面向对象思想)
2019/12/10 Javascript
JS document form表单元素操作完整示例
2020/01/13 Javascript
小程序表单认证布局及验证详解
2020/06/19 Javascript
[00:32]2018DOTA2亚洲邀请赛出场——VP
2018/04/04 DOTA
Python字典操作简明总结
2015/04/13 Python
简单介绍Python中利用生成器实现的并发编程
2015/05/04 Python
Python远程视频监控程序的实例代码
2019/05/05 Python
Django url,从一个页面调到另个页面的方法
2019/08/21 Python
Python3 Click模块的使用方法详解
2020/02/12 Python
django model object序列化实例
2020/03/13 Python
如何理解python中数字列表
2020/05/29 Python
python在一个范围内取随机数的简单实例
2020/08/16 Python
Python钉钉报警及Zabbix集成钉钉报警的示例代码
2020/08/17 Python
从当地商店送来的杂货:Instacart
2018/08/19 全球购物
毕业生动漫设计求职信
2013/10/11 职场文书
数学专业推荐信范文
2013/11/21 职场文书
服装电子商务创业计划书
2014/01/30 职场文书
公交公司毕业生求职信
2014/02/15 职场文书
境外导游求职信
2014/02/27 职场文书
《宋庆龄故居的樟树》教学反思
2014/04/07 职场文书
高中生期中考试失利检讨书
2014/10/23 职场文书
检讨书范文
2015/01/27 职场文书