流畅的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)