本模块主要提供了针对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 深圳