用pickle存储Python的原生对象方法
作者:jingxian 时间:2023-10-31 04:43:13
在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”,这与内置模块文件重名了,改一下就可以了。。
标签:python,pickle,存储
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
php二分查找二种实现示例
2023-11-21 00:40:13
Python学习之字符串常用操作详解
2022-07-14 18:54:48
Python+OpenCV内置方法实现行人检测
2023-10-19 12:52:47
![](https://img.aspxhome.com/file/2023/7/81857_0s.jpg)
python抓取百度首页的方法
2023-05-25 13:31:58
解密Python中的描述符(descriptor)
2023-12-05 08:28:48
一文带你了解MySQL中的事务
2024-01-19 00:21:16
![](https://img.aspxhome.com/file/2023/4/74794_0s.png)
聊聊Pytorch torch.cat与torch.stack的区别
2021-05-07 02:07:39
![](https://img.aspxhome.com/file/2023/2/127812_0s.jpg)
Python数据可视化之Seaborn的使用详解
2022-10-25 21:57:31
![](https://img.aspxhome.com/file/2023/2/89292_0s.png)
Python pygorithm模块用法示例【常见算法测试】
2023-05-19 00:23:59
Go语言hello world实例
2024-04-26 17:21:32
Oracle 正则表达式实例详解
2024-01-25 23:43:01
分析mysql中一条SQL查询语句是如何执行的
2024-01-19 15:43:59
![](https://img.aspxhome.com/file/2023/8/96498_0s.jpg)
git push时卡住的解决方法(长时间不报错也不自动退出)
2022-05-08 04:40:00
![](https://img.aspxhome.com/file/2023/2/132342_0s.png)
详解在SpringBoot如何优雅的使用多线程
2021-07-27 13:02:39
![](https://img.aspxhome.com/file/2023/9/92069_0s.jpg)
javascript 操作文件 实现方法小结
2024-04-22 12:48:27
详解python中的文件与目录操作
2023-10-15 06:15:03
未能找到存储过程’master.dbo.xp_fileexist’解决方法
2011-03-13 09:29:00
python 实时得到cpu和内存的使用情况方法
2023-10-05 20:03:24
![](https://img.aspxhome.com/file/2023/1/86341_0s.jpg)
Django 数据库同步操作技巧详解
2024-01-28 02:26:14
![](https://img.aspxhome.com/file/2023/5/112545_0s.png)
Response.Flush的用法
2010-04-08 12:54:00