python--使用pickle序列化对象
2024-08-26 21:38:45
pickle序列化对象
如果希望透明地存储 Python 对象,而不丢失其身份和类型等信息,则需要某种形式的对象序列化:它是一个将任意复杂的对象转成对象的文本或二进制表示的过程。
同样,必须能够将对象经过序列化后的形式恢复到原有的对象。在 Python 中,这种序列化过程称为 pickle,
可以将对象 pickle 成字符串、磁盘上的文件或者任何类似于文件的对象,也可以将这些字符串、文件或任何类似于文件的对象 unpickle 成原来的对象
代码实例
import pickle
class MyPickle(object): def __init__(self,file_name):
self.file_name = file_name def dump(self,obj):
"""
序列化对象
:param obj:
:return:
"""
with open(self.file_name,'ab') as f:
pickle.dump(obj, f)
print('dump data',obj.__dict__) def loaditer(self):
"""
迭代反序列化对象
:return:
"""
f = open(self.file_name, 'rb')
while True:
try:
obj = pickle.load(f)
yield obj
except EOFError:
print('EOFError')
f.close()
print(f.closed)
break class Person:
def __init__(self,n,a):
self.name=n
self.age=a
def show(self):
print(self.name+"_"+str(self.age) ) aa = Person("aGood", 2)
bb = Person("bGood",3)
cc = Person("cGood",4) p = MyPickle('c.txt')
p.dump(aa)
p.dump(bb)
p.dump(cc) iter_obj = p.loaditer()
while True:
try:
print(next(iter_obj).__dict__)
except StopIteration:
print('stop')
break
输出结果
dump data {'name': 'aGood', 'age': 2}
dump data {'name': 'bGood', 'age': 3}
dump data {'name': 'cGood', 'age': 4}
{'name': 'aGood', 'age': 2}
{'name': 'bGood', 'age': 3}
{'name': 'cGood', 'age': 4}
EOFError
True
stop
最新文章
- 【转】2016/2017 Web 开发者路线图
- Maven使用第三方jar文件的两种方法
- IOS表情存入MYSQL数据库失败
- 【JSP jstl c标签】使用c:foreach 报错(警告)”test does not support runtime expressions“
- Oracle笔记 九、PL/SQL 游标的使用
- 51nod1295 XOR key
- 【转】在Ubuntu上下载、编译和安装Android最新源代码
- JAVA虚拟机简介
- 10.4 noip模拟试题
- influxdb + Grafana可视化监控平台
- 使用Olami SDK 语音控制一个支持HomeKit的智能家居的iOS程序
- 2017 ICPC/ACM 沈阳区域赛HDU6228
- Redis数据结构之skiplist
- python 3 爬取某小说网站小说,注释详细
- match和search的区别
- nlogn LIS模板
- Dubbo后台管理和监控中心部署
- CSS应用的小问题总结
- 团体程序设计天梯赛 L1-009. N个数求和
- 51nod 1962区间计数(单调栈加二分)
热门文章
- Python脚本语言第一行的写法
- tp5系统核心设计提供了一些可能会需要的钩子(位置)
- CAS 单点登录 服务器整合
- jQuery警告/确认/提示弹出对话框效果(替换传统JavaScript下的提示框)
- openstack查看命令的restful调用形式
- Java编程从头开始---老妪能解
- python科学计算模块NumPy
- Eclipse环境下如何配置tomcat,并且把项目部署到Tomcat服务器上
- Grand Central Dispatch
- _编程语言_C_C++_数据结构_struct