用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 相关文章推荐
pyqt4教程之实现半透明的天气预报界面示例
Mar 02 Python
Python打印scrapy蜘蛛抓取树结构的方法
Apr 08 Python
在Django的视图中使用form对象的方法
Jul 18 Python
python自带的http模块详解
Nov 06 Python
Python subprocess模块详细解读
Jan 29 Python
详解Python中的测试工具
Jun 09 Python
python实现ip代理池功能示例
Jul 05 Python
springboot配置文件抽离 git管理统 配置中心详解
Sep 02 Python
Python 日志logging模块用法简单示例
Oct 18 Python
用python中的matplotlib绘制方程图像代码
Nov 21 Python
python中利用matplotlib读取灰度图的例子
Dec 07 Python
win10下python3.8的PIL库安装过程
Jun 08 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入门学习知识点三 PHP上传
2011/07/14 PHP
如何用php获取程序执行的时间
2013/06/09 PHP
PHP中将ip地址转成十进制数的两种实用方法
2013/08/15 PHP
PHP生成不重复标识符的方法
2014/11/21 PHP
php中数组最简单的使用方法
2020/12/27 PHP
制作特殊字的脚本
2006/06/26 Javascript
简单的无缝滚动程序-仅几行代码
2007/05/08 Javascript
IE8 下的Js错误HTML Parsing Error...
2009/08/14 Javascript
如何正确使用Nodejs 的 c++ module 链接到 OpenSSL
2014/08/03 NodeJs
Javascript验证Visa和MasterCard信用卡号的方法
2015/07/27 Javascript
Javascript闭包实例详解
2015/11/29 Javascript
jQuery插件Validation快速完成表单验证的方式
2016/07/28 Javascript
koa2使用ejs和nunjucks作为模板引擎的使用
2018/11/27 Javascript
python strip() 函数和 split() 函数的详解及实例
2017/02/03 Python
Python分治法定义与应用实例详解
2017/07/28 Python
Python基于动态规划算法解决01背包问题实例
2017/12/06 Python
Python tkinter事件高级用法实例
2018/01/31 Python
python3连接kafka模块pykafka生产者简单封装代码
2019/12/23 Python
python实现修改固定模式的字符串内容操作示例
2019/12/30 Python
Django获取model中的字段名和字段的verbose_name方式
2020/05/19 Python
利用Python实现自动扫雷小脚本
2020/12/17 Python
HTML5地理定位_动力节点Java学院整理
2017/07/12 HTML / CSS
加利福尼亚州威尼斯的女性奢侈品设计师服装和概念店:Mona Moore
2018/09/13 全球购物
兰蔻英国官网:Lancome英国
2019/04/30 全球购物
俄罗斯品牌服装和鞋子的在线商店:KUPIVIP
2019/10/27 全球购物
行政助理的职责
2013/11/14 职场文书
村优秀党员事迹材料
2014/01/15 职场文书
家庭教育的心得体会
2014/09/01 职场文书
关于拾金不昧的感谢信
2015/01/21 职场文书
劳资员岗位职责
2015/02/13 职场文书
学校中层领导培训心得体会
2016/01/11 职场文书
2017春节晚会开幕词
2016/03/03 职场文书
分享一些Java的常用工具
2021/06/11 Java/Android
Python可视化学习之seaborn绘制矩阵图详解
2022/02/24 Python
mysql中DCL常用的用户和权限控制
2022/03/31 MySQL
分析SQL窗口函数之取值窗口函数
2022/04/21 Oracle