用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比较2个xml内容的方法
May 11 Python
Python中的lstrip()方法使用简介
May 19 Python
使用Python生成随机密码的示例分享
Feb 18 Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
Sep 28 Python
Python爬虫框架Scrapy实例代码
Mar 04 Python
pandas去重复行并分类汇总的实现方法
Jan 29 Python
python3 tcp的粘包现象和解决办法解析
Dec 09 Python
利用Python裁切tiff图像且读取tiff,shp文件的实例
Mar 10 Python
Python实现从N个数中找到最大的K个数
Apr 02 Python
Python字符串split及rsplit方法原理详解
Jun 29 Python
利用python对excel中一列的时间数据更改格式操作
Jul 14 Python
ffmpeg+Python实现B站MP4格式音频与视频的合并示例代码
Oct 21 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
Notice: Undefined index: page in E:\PHP\test.php on line 14
2010/11/02 PHP
IP攻击升级,程序改进以对付新的攻击
2010/11/23 PHP
PHP实现PDO的mysql数据库操作类
2014/12/12 PHP
jQuery把表单元素变为json对象
2013/11/06 Javascript
js实现搜索框关键字智能匹配代码
2020/03/26 Javascript
js实现String.Fomat的实例代码
2016/09/02 Javascript
清除js缓存的多种方法总结
2016/12/09 Javascript
用JavaScript实现让浏览器停止载入页面的方法
2017/01/19 Javascript
jQuery基于ajax实现页面加载后检查用户登录状态的方法
2017/02/10 Javascript
Vue原理剖析 实现双向绑定MVVM
2017/05/03 Javascript
vue.js 上传图片实例代码
2017/06/22 Javascript
Vue.js实现按钮的动态绑定效果及实现代码
2017/08/21 Javascript
详解Vue用自定义指令完成一个下拉菜单(select组件)
2017/10/31 Javascript
vue服务端渲染添加缓存的方法
2018/09/18 Javascript
微信小程序如何实现五星评价功能
2019/10/15 Javascript
Vue.js watch监视属性知识点总结
2019/11/11 Javascript
vue 获取到数据但却渲染不到页面上的解决方法
2020/11/19 Vue.js
Python实现的从右到左字符串替换方法示例
2018/07/06 Python
解决Python下json.loads()中文字符出错的问题
2018/12/19 Python
Python lxml解析HTML并用xpath获取元素的方法
2019/01/02 Python
对python中if语句的真假判断实例详解
2019/02/18 Python
对Python强大的可变参数传递机制详解
2019/06/13 Python
python matplotlib库直方图绘制详解
2019/08/10 Python
python Pillow图像处理方法汇总
2019/10/16 Python
Django-simple-captcha验证码包使用方法详解
2020/11/28 Python
迪斯尼商品官方网站:ShopDisney
2016/08/01 全球购物
世界上最悠久的自行车制造商:Ribble Cycles
2017/03/18 全球购物
大学生求职自荐信
2013/12/12 职场文书
求职简历自我评价范例
2014/03/12 职场文书
2014县委书记党的群众路线教育实践活动对照检查材料思想汇报
2014/09/22 职场文书
2014年世界艾滋病日演讲稿
2014/11/28 职场文书
机器人总动员观后感
2015/06/09 职场文书
生产设备维护保养制度
2015/08/06 职场文书
利用前端HTML+CSS+JS开发简单的TODOLIST功能(记事本)
2021/04/13 Javascript
OpenCV-Python实现轮廓的特征值
2021/06/09 Python
关于MybatisPlus配置双数据库驱动连接数据库问题
2022/01/22 Java/Android