用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模拟百度登录实例详解
Jan 20 Python
python 全局变量的import机制介绍
Sep 07 Python
python GUI实例学习
Nov 21 Python
python 连接各类主流数据库的实例代码
Jan 30 Python
一百多行python代码实现抢票助手
Sep 25 Python
python ipset管理 增删白名单的方法
Jan 14 Python
python实现画五角星和螺旋线的示例
Jan 20 Python
anaconda如何查看并管理python环境
Jul 05 Python
Python基于Socket实现简单聊天室
Feb 17 Python
python 的numpy库中的mean()函数用法介绍
Mar 03 Python
为2021年的第一场雪锦上添花:用matplotlib绘制雪花和雪景
Jan 05 Python
如何使用Python提取Chrome浏览器保存的密码
Jun 09 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实现MySQL更新记录的代码
2008/06/07 PHP
使用composer命令加载vendor中的第三方类库 的方法
2019/07/09 PHP
js 提交和设置表单的值
2008/12/19 Javascript
javascript中的对象创建 实例附注释
2011/02/08 Javascript
判断对象是否Window的实现代码
2012/01/10 Javascript
点击进行复制的JS代码实例
2013/08/23 Javascript
JavaScript中字符串拼接的基本方法
2015/07/07 Javascript
JavaScript中英文字符长度统计方法示例【按照中文占2个字符】
2017/01/17 Javascript
详解angular2封装material2对话框组件
2017/03/03 Javascript
将angular.js项目整合到.net mvc中的方法详解
2017/06/29 Javascript
three.js加载obj模型的实例代码
2017/11/10 Javascript
使用mint-ui实现省市区三级联动效果的示例代码
2018/02/09 Javascript
基于Vue2实现简易的省市区县三级联动组件效果
2018/11/05 Javascript
Angular8 Http拦截器简单使用教程
2019/08/20 Javascript
微信小程序图片加载失败时替换为默认图片的方法
2019/12/09 Javascript
python操作日期和时间的方法
2014/03/11 Python
Python导入txt数据到mysql的方法
2015/04/08 Python
python库lxml在linux和WIN系统下的安装
2018/06/24 Python
python判断一个对象是否可迭代的例子
2019/07/22 Python
简单掌握CSS3中resize属性的用法
2016/04/01 HTML / CSS
html5音频_动力节点Java学院整理
2018/08/22 HTML / CSS
俄罗斯女装店:12storeez
2019/10/25 全球购物
写出SQL四条最基本的数据操作语句(DML)
2012/12/12 面试题
国家助学金获奖感言
2014/01/31 职场文书
抽奖活动主持词
2014/03/31 职场文书
经理任命书模板
2014/06/06 职场文书
安全宣传标语
2014/06/10 职场文书
社会体育专业大学生职业生涯规划书
2014/09/17 职场文书
单方离婚协议书范本2014
2014/10/28 职场文书
销售督导岗位职责
2015/04/10 职场文书
入伍通知书
2015/04/23 职场文书
学校工会工作总结2015
2015/05/19 职场文书
go select编译期的优化处理逻辑使用场景分析
2021/06/28 Golang
「租借女友」第2季樱泽墨角色PV&新视觉图公开
2022/03/21 日漫
详解Spring Security如何在权限中使用通配符
2022/06/28 Java/Android
redis protocol通信协议及使用详解
2022/07/15 Redis