用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解析xml中dom元素的方法
Mar 12 Python
详解在Python和IPython中使用Docker
Apr 28 Python
Python实现MySQL操作的方法小结【安装,连接,增删改查等】
Jul 12 Python
python九九乘法表的实例
Sep 26 Python
Python使用matplotlib绘制随机漫步图
Aug 27 Python
Python3非对称加密算法RSA实例详解
Dec 06 Python
解决python中画图时x,y轴名称出现中文乱码的问题
Jan 29 Python
对python tkinter窗口弹出置顶的方法详解
Jun 14 Python
利用Python检测URL状态
Jul 31 Python
Python BeautifulSoup [解决方法] TypeError: list indices must be integers or slices, not str
Aug 07 Python
Python如何通过Flask-Mail发送电子邮件
Jan 29 Python
tensorflow学习笔记之tfrecord文件的生成与读取
Mar 31 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
模仿OSO的论坛(四)
2006/10/09 PHP
PHP往XML中添加节点的方法
2015/03/12 PHP
PHP实现数据分页显示的简单实例
2016/05/26 PHP
php实现数字补零的方法总结
2018/09/12 PHP
数理公式,也可以这么唯美
2021/03/10 无线电
javascript延时重复执行函数 lLoopRun.js
2007/06/29 Javascript
js中将具有数字属性名的对象转换为数组
2011/03/06 Javascript
js汉字转拼音实现代码
2013/02/06 Javascript
window.navigate 与 window.location.href 的使用区别介绍
2013/09/21 Javascript
javascript使用onclick事件改变选中行的颜色
2013/12/30 Javascript
jQuery选择器全集详解
2014/11/24 Javascript
用NODE.JS中的流编写工具是要注意的事项
2016/03/01 Javascript
jQuery实现两个select控件的互移操作
2016/12/22 Javascript
JavaScript中for循环的几种写法与效率总结
2017/02/03 Javascript
深入浅析ES6 Class 中的 super 关键字
2017/10/20 Javascript
json对象及数组键值的深度大小写转换问题详解
2018/03/30 Javascript
取消Bootstrap的dropdown-menu点击默认关闭事件方法
2018/08/10 Javascript
element-ui组件table实现自定义筛选功能的示例代码
2019/03/15 Javascript
JS实现点击发送验证码 xx秒后重新发送功能
2019/07/30 Javascript
js实现磁性吸附的示例
2020/10/26 Javascript
Python教程之全局变量用法
2016/06/27 Python
python 按不同维度求和,最值,均值的实例
2018/06/28 Python
Python面向对象总结及类与正则表达式详解
2019/04/18 Python
Python 实现文件读写、坐标寻址、查找替换功能
2019/09/11 Python
python中shell执行知识点
2020/05/06 Python
python用分数表示矩阵的方法实例
2021/01/11 Python
使用phonegap获取位置信息的实现方法
2017/03/31 HTML / CSS
First Aid Beauty官网:FAB急救面霜
2018/05/24 全球购物
网络工程师面试(三木通信技术有限公司)
2013/06/05 面试题
银行工作检查书范文
2014/01/31 职场文书
音乐学专业求职信
2014/07/22 职场文书
2014机关干部学习“焦裕禄精神”思想汇报
2014/09/19 职场文书
入党函调证明材料
2014/12/24 职场文书
Vue vee-validate插件的简单使用
2021/06/22 Vue.js
MongoDB支持的索引类型
2022/04/11 MongoDB
html用代码制作虚线框怎么做? dw制作虚线圆圈的技巧
2022/12/24 HTML / CSS