用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中操作时间之tzset()方法的使用教程
May 22 Python
Python实现的排列组合计算操作示例
Oct 13 Python
python的unittest测试类代码实例
Dec 07 Python
Python实现简易版的Web服务器(推荐)
Jan 29 Python
Django 配置多站点多域名的实现步骤
May 17 Python
python的set处理二维数组转一维数组的方法示例
May 31 Python
Python参数类型以及常见的坑详解
Jul 08 Python
python logging模块书写日志以及日志分割详解
Jul 22 Python
Python下opencv图像阈值处理的使用笔记
Aug 04 Python
python科学计算之narray对象用法
Nov 25 Python
python飞机大战游戏实例讲解
Dec 04 Python
Python实现提取PDF简历信息并存入Excel
Apr 02 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 带逗号千位符数字的处理方法
2012/01/10 PHP
php实现QQ空间获取当前用户的用户名并生成图片
2015/07/25 PHP
PHP 实现手机端APP支付宝支付功能
2018/06/07 PHP
yii2 开发api接口时优雅的处理全局异常的方法
2019/05/14 PHP
javascript 学习笔记(onchange等)
2010/11/14 Javascript
禁止IE用右键的JS代码
2013/12/30 Javascript
Javascript中arguments用法实例分析
2015/06/13 Javascript
js实现滚动条滚动到某个位置便自动定位某个tr
2021/01/20 Javascript
JS图片定时翻滚效果实现方法
2016/06/21 Javascript
js设置和获取自定义属性的方法
2016/10/20 Javascript
jQuery联动日历的实例解析
2016/12/02 Javascript
纯javaScript、jQuery实现个性化图片轮播【推荐】
2017/01/08 Javascript
vue.js利用Object.defineProperty实现双向绑定
2017/03/09 Javascript
angular中实现li或者某个元素点击变色的两种方法
2017/07/27 Javascript
JS实现移动端触屏拖拽功能
2018/07/31 Javascript
javascript中如何判断类型汇总
2019/05/14 Javascript
vue.js循环radio的实例
2019/11/07 Javascript
微信小程序返回上一页传参并刷新过程解析
2019/12/13 Javascript
vue编写简单的购物车功能
2021/01/08 Vue.js
用python登录Dr.com思路以及代码分享
2014/06/25 Python
Python简单实现enum功能的方法
2016/04/25 Python
Python中xrange与yield的用法实例分析
2017/12/26 Python
Python模块的制作方法实例分析
2019/12/21 Python
HTML5通过调用canvas对象的getContext()方法来获取绘图环境
2014/06/23 HTML / CSS
HTML5中使用json对象的实例代码
2018/09/10 HTML / CSS
加拿大鞋子连锁店:Town Shoes
2016/09/26 全球购物
HUGO BOSS美国官方网上商店:世界知名奢侈品牌
2017/08/04 全球购物
伦敦的高级牛仔布专家:Trilogy
2018/08/06 全球购物
Marlies Dekkers内衣美国官方网上商店:高端内衣品牌
2018/11/12 全球购物
日本最大的彩色隐形眼镜销售网站:CharmColor
2020/09/09 全球购物
2014年妇幼保健工作总结
2014/12/08 职场文书
2015年度对口支援工作总结
2015/07/22 职场文书
小学生安全教育主题班会
2015/08/12 职场文书
MySQL Shell import_table数据导入的实现
2021/08/07 MySQL
JavaScript执行机制详细介绍
2021/12/06 Javascript
MySQL事务操作的四大特性以及并发事务问题
2022/04/12 MySQL