用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 02 Python
Python实现将DOC文档转换为PDF的方法
Jul 25 Python
Python处理json字符串转化为字典的简单实现
Jul 07 Python
python WindowsError的错误代码详解
Jul 23 Python
python正则实现提取电话功能
Feb 24 Python
浅谈Tensorflow模型的保存与恢复加载
Apr 26 Python
局域网内python socket实现windows与linux间的消息传送
Apr 19 Python
使用Python制作表情包实现换脸功能
Jul 19 Python
Python基本语法之运算符功能与用法详解
Oct 22 Python
python爬虫之遍历单个域名
Nov 20 Python
如何基于Python实现自动扫雷
Jan 06 Python
python面向对象版学生信息管理系统
Jun 24 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
【动漫杂谈】关于《请在T台上微笑》
2020/03/03 日漫
ThinkPHP单字母函数(快捷方法)使用总结
2014/07/23 PHP
php计算税后工资的方法
2015/07/28 PHP
javascript 定义初始化数组函数
2009/09/07 Javascript
javascript作用域容易记错的两个地方分析
2012/06/22 Javascript
点击进行复制的JS代码实例
2013/08/23 Javascript
extjs 分页使用jsp传递数据示例
2014/07/29 Javascript
JavaScript前端图片加载管理器imagepool使用详解
2014/12/29 Javascript
jquery自定义表格样式
2015/11/23 Javascript
全面解析Angular中$Apply()及$Digest()的区别
2016/08/04 Javascript
简单理解js的冒泡排序
2016/12/19 Javascript
ReactNative列表ListView的用法
2017/08/02 Javascript
Bootstrap 模态框多次显示后台提交多次BUG的解决方法
2017/12/26 Javascript
Node.js 利用cheerio制作简单的网页爬虫示例
2018/03/01 Javascript
layer插件select选中默认值的方法
2018/08/14 Javascript
详解TypeScript+Vue 插件 vue-class-component的使用总结
2019/02/18 Javascript
vue利用全局导航守卫作登录后跳转到未登录前指定页面的实例代码
2020/05/19 Javascript
一个简单的python程序实例(通讯录)
2013/11/29 Python
PyTorch CNN实战之MNIST手写数字识别示例
2018/05/29 Python
python 根据字典的键值进行排序的方法
2019/07/24 Python
Django项目使用ckeditor详解(不使用admin)
2019/12/17 Python
python 轮询执行某函数的2种方式
2020/05/03 Python
python两个list[]相加的实现方法
2020/09/23 Python
施华洛世奇波兰官网:SWAROVSKI波兰
2019/06/18 全球购物
出纳担保书范文
2014/04/02 职场文书
社团活动总结书
2014/06/27 职场文书
2014年小学生教师节演讲稿范文
2014/09/10 职场文书
面试通知短信
2015/04/20 职场文书
个人工作违纪检讨书
2015/05/05 职场文书
校园广播站开场白
2015/06/01 职场文书
安全教育的主题班会
2015/08/13 职场文书
幽默导游词应该怎么写?
2019/08/26 职场文书
Vue3 Composition API的使用简介
2021/03/29 Vue.js
python通过函数名调用函数的几种方法总结
2021/06/07 Python
教你使用Ubuntu搭建DNS服务器
2022/09/23 Servers