用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判断给定的字符串是否是有效日期的方法
May 13 Python
Python中用于转换字母为小写的lower()方法使用简介
May 19 Python
python简单获取数组元素个数的方法
Jul 13 Python
在windows下快速搭建web.py开发框架方法
Apr 22 Python
Python中内建函数的简单用法说明
May 05 Python
python基于phantomjs实现导入图片
May 13 Python
Python 正则表达式入门(初级篇)
Dec 07 Python
Django form表单与请求的生命周期步骤详解
Jun 07 Python
Python 如何操作 SQLite 数据库
Aug 17 Python
jupyter notebook 写代码自动补全的实现
Nov 02 Python
python 实现图片裁剪小工具
Feb 02 Python
Flask使用SQLAlchemy实现持久化数据
Jul 16 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无限分类且支持输出树状图的详细介绍
2013/06/19 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
2014/06/30 PHP
浅谈php函数serialize()与unserialize()的使用方法
2014/08/19 PHP
php设计模式之委托模式
2016/02/13 PHP
PHP连接MySQL进行增、删、改、查操作
2017/02/19 PHP
PHP数据库操作四:mongodb用法分析
2017/08/16 PHP
javascript将数组插入到另一个数组中的代码
2013/01/10 Javascript
js循环改变div颜色具体方法
2013/06/25 Javascript
判断滚动条到底部的JS代码
2013/11/04 Javascript
jquery1.9 下检测浏览器类型和版本的方法
2013/12/26 Javascript
js判断上传文件类型判断FileUpload文件类型代码
2014/05/20 Javascript
jQuery实现自动切换播放的经典滑动门效果
2015/09/12 Javascript
又一枚精彩的弹幕效果jQuery实现
2016/07/25 Javascript
浅析Node.js实现HTTP文件下载
2016/08/05 Javascript
vue-cli脚手架打包静态资源请求出错的原因与解决
2019/06/06 Javascript
layui实现数据表格点击搜索功能
2020/03/26 Javascript
使用 Vue-TCB 快速在 Vue 应用中接入云开发的方法
2020/02/10 Javascript
vue 自定义组件的写法与用法详解
2020/03/04 Javascript
Python中下划线的使用方法
2015/03/27 Python
Python批处理更改文件名os.rename的方法
2018/10/26 Python
Python打开文件,将list、numpy数组内容写入txt文件中的方法
2018/10/26 Python
python实现简单日志记录库glog的使用
2019/12/13 Python
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
2020/05/08 Python
遮罩层 + Iframe实现界面自动显示的示例代码
2020/04/26 HTML / CSS
Under Armour美国官网:美国知名高端功能性运动品牌
2016/09/05 全球购物
AC Lens:购买隐形眼镜
2017/02/26 全球购物
英国床垫和床架购物网站:Bedman
2019/11/04 全球购物
Farfetch澳大利亚官网:Farfetch Australia
2020/04/26 全球购物
委托书怎样写
2014/08/30 职场文书
大三学生英语考试作弊检讨书
2015/01/01 职场文书
老龙头导游词
2015/02/11 职场文书
父亲节寄语大全
2015/02/27 职场文书
煤矿百日安全活动总结
2015/05/07 职场文书
钢铁是怎样炼成的读书笔记
2015/06/29 职场文书
初中团委工作总结
2015/08/13 职场文书
Win11运行育碧游戏总是崩溃怎么办 win11玩育碧游戏出现性能崩溃的解决办法
2022/04/06 数码科技