用pickle存储Python的原生对象方法
|
在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中关于Sequence切片的下标问题详解
- python – 如何在使用PIL裁剪图像时设置坐标?
- macos – MacHg / Murky / TortoiseHg – 要使用
- 在python日志记录中使用dictConfig,需要创建一个
- Python tk窗口获得没有窗口顶部的x,y,几何/坐标
- worker_machine_type标记在使用python的Google C
- 我有一个使用HTML,CSS和Javascript构建的静态网站
- Python3控制路由器――使用requests重启极路由.p
- 这是我见过最牛逼,最全面的Beautiful Soup 4.2
- 读写json中文ASCII乱码问题的解决方法
