9.4 marshal--Python内部对象序列化

本模块主要提供了针对Python内部对象进行保存到文件,以及从文件读取对象出来。保存到文件的格式采用二进制的方式,不过这个格式并没有文档介绍,因为本模块主要使用在Python内部临时编译代码.pyc文件进行操作,并且不考虑不同Python版本之间的兼容性。本模块存在的意义就是为了Python内部使用,比如Python内部的库等等。

marshal.dump(value, file[, version])

将值value写到打开的文件file流里。参数value是要写入的值;参数file是要打开的输出流。输出文件必须是一个文件对象,比如sys.stdout,或者open(),或者os.popen()打开的文件对象,需要打开的方式为wb或者w+b的方式。

 

marshal.load(file)

从文件里读取一个值,并返回它。

 

marshal.dumps(value[, version])

与函数dump()功能一样,只不过本函数返回序化化流对象。

 

marshal.loads(string)

与函数load()功能一样,只不过本函数从流串中进行解析对象。

 

marshal.version

返回支持的版本。

 

例子:

#python 3.4

import marshal, sys, os

 

lst = [1, (2, r'http:\\'), (3, r'blog.csdn.net/caimouse')]

#序列化保存

file = open('tmp.dat', 'wb')

marshal.dump(lst, file)

file.close()

 

#序列化加载

file = open('tmp.dat', 'rb')

lst1 = marshal.load(file)

file.close()

 

print(lst)

print(lst1)

结果输出如下:

[1, (2, 'http:\\\\'), (3, 'blog.csdn.net/caimouse')]

[1, (2, 'http:\\\\'), (3, 'blog.csdn.net/caimouse')]


蔡军生  QQ:9073204 深圳

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

caimouse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值