用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结合selenium获取XX省交通违章数据的实现思路及代码
Jun 26 Python
Python实现桶排序与快速排序算法结合应用示例
Nov 22 Python
Python http接口自动化测试框架实现方法示例
Dec 06 Python
对Python 除法负数取商的取整方式详解
Dec 12 Python
python 整数越界问题详解
Jun 27 Python
Django中使用haystack+whoosh实现搜索功能
Oct 08 Python
Python字符串的修改方法实例
Dec 19 Python
python实现与redis交互操作详解
Apr 21 Python
python实现Oracle查询分组的方法示例
Apr 30 Python
关于Python不换行输出和不换行输出end=““不显示的问题(亲测已解决)
Oct 27 Python
Python中的min及返回最小值索引的操作
May 10 Python
python实现手机推送 代码也就10行左右
Apr 12 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
收音机频率指针指示不准确和灵敏度低问题
2021/03/02 无线电
PHP4中session登录页面的应用
2008/07/25 PHP
php浏览历史记录的方法
2015/03/10 PHP
js 绑定带参数的事件以及手动触发事件
2010/04/27 Javascript
jQuery学习笔记 操作jQuery对象 文档处理
2012/09/19 Javascript
关于include标签导致js路径找不到的问题分析及解决
2013/07/09 Javascript
用js来刷新当前页面保留参数的具体实现
2013/12/23 Javascript
jQuery实现列表自动滚动循环滚动展示新闻
2014/08/22 Javascript
javaScript中with函数用法实例分析
2015/06/08 Javascript
jQuery插件扩展测试实例
2016/06/21 Javascript
jQuery中text() val()和html()的区别实例详解
2016/06/28 Javascript
jQuery插件之validation插件
2017/03/29 jQuery
Vue.js展示AJAX数据简单示例讲解
2017/03/29 Javascript
JavaScript数组的5种迭代方法
2017/09/29 Javascript
超好用的jQuery分页插件jpaginate用法示例【附源码下载】
2018/12/06 jQuery
vue操作动画的记录animate.css实例代码
2019/04/26 Javascript
基于vue实现一个禅道主页拖拽效果
2019/05/27 Javascript
使用watch在微信小程序中实现全局状态共享
2019/06/03 Javascript
JavaScript实现抖音罗盘时钟
2019/10/11 Javascript
如何在vue中使用kindeditor富文本编辑器
2020/12/19 Vue.js
[02:38]2018年度DOTA2最佳劣单位选手-完美盛典
2018/12/17 DOTA
[01:32]寻找你心中的那团火 DOTA2 TI9火焰传递活动今日开启
2019/05/16 DOTA
[04:16]完美世界DOTA2联赛PWL S2 集锦第一期
2020/11/23 DOTA
python 中split 和 strip的实例详解
2017/07/12 Python
详解python配置虚拟环境
2019/04/08 Python
Python使用selenium + headless chrome获取网页内容的方法示例
2019/10/16 Python
基于Python+Appium实现京东双十一自动领金币功能
2019/10/31 Python
Python更换pip源方法过程解析
2020/05/19 Python
html5 Canvas画图教程(1)—画图的基本常识
2013/01/09 HTML / CSS
HTML5超炫酷粒子效果的进度条的实现示例
2019/08/23 HTML / CSS
法国大使拉杆箱官网:DELSEY Paris
2018/03/20 全球购物
LUISAVIAROMA中国官网:时尚奢侈品牌购物网站
2020/11/01 全球购物
《木笛》教学反思
2014/03/01 职场文书
培训班开班主持词
2015/07/02 职场文书
Python人工智能之混合高斯模型运动目标检测详解分析
2021/11/07 Python
多人盗宝《绿林侠盗》第三赛季4.5上线 跨平台实装
2022/04/03 其他游戏