##language:zh '''序列化数据 Pickling Data ''' * 前几节的文件处理,都是读写字串信息; * 但是在一些情况中,你需要操作其它的数据类型,比如说: 列表,元组,字典或是其它对象. * 在Python 通过序列化方法来处理,标准化库中已经包含了这个 "pickle" 模块. * 让我们先序列化一个混合了字串和数字的列表:{{{#!python import pickle fileHandle = open ( 'pickleFile.txt', 'w' ) testList = [ 'This', 2, 'is', 1, 'a', 0, 'test.' ] pickle.dump ( testList, fileHandle ) fileHandle.close() }}} * 解序列,也非常容易:{{{#!python import pickle fileHandle = open ( 'pickleFile.txt' ) testList = pickle.load ( fileHandle ) fileHandle.close() }}} * 当然可以存储复杂的数据:{{{#!python import pickle fileHandle = open ( 'pickleFile.txt', 'w' ) testList = [ 123 , { 'Calories' : 190 } , 'Mr. Anderson' , [ 1, 2, 7 ] ] pickle.dump ( testList, fileHandle ) fileHandle.close() import pickle fileHandle = open ( 'pickleFile.txt' ) testList = pickle.load ( fileHandle ) fileHandle.close() }}} * 如你所见,通过"pickle"模块可以非常简单序列化对象为文件存储,你也可以使用 "cPickle" 模块(如果你安装的话),一看名字就知道这是使用 C 实现的相同功能的模块, 因为它要更快: {{{#!python import cPickle fileHandle = open ( 'pickleFile.txt', 'w' ) cPickle.dump ( 1776, fileHandle ) fileHandle.close() }}} ---- -- ZoomQuiet [<>]