流畅的python和cookbook学习笔记(七) 1.读写压缩数据文件 2.序列化Python对象
使用 gzip 和 bz2 模块来读写压缩文件,不过需要注意文件的模式,默认格式为二进制。
1 # 读取压缩文件 2 import gzip 3 with gzip.open('somefile.gz', 'rt') as f: 4 text = f.read() 5 6 import bz2 7 with bz2.open('somefile.bz2', 'rt') as f: 8 text = f.read() 9 10 # 写入压缩数据 11 import gzip 12 with gzip.open('somefile.gz', 'wt') as f: 13 f.write(text) 14 15 import bz2 16 with bz2.open('somefile.bz2', 'wt') as f: 17 f.write(text)
2.序列化Python对象
使用 pickle 模块来序列化数据。
1.转存数据
>>> import pickle >>> data = 'I love python' >>> f = open('somefile', 'wb') >>> pickle.dump(data, f) # 注意一个是dump,一个是dumps >>> s = pickle.dumps(data)
2.从字节流中从新创建对象,使用 pickle.load() 或 pickle.loads() 函数
>>> f = open('somefile', 'b') >>> data = pickle.load(f) >>> data = pickle.loads(f)