您的位置:首页 > 编程语言 > Python开发

9.1.3 模块接口

2016-04-18 22:48 337 查看
pickle.HIGHEST_PROTOCOL 一个整数,表示支持协议的最高版本。例子:#python 3.4import pickle r = pickle.HIGHEST_PROTOCOLprint('version:', r)结果输出如下:version: 4 pickle.DEFAULT_PROTOCOL 一个整数,表示默认使用的协议版本。例子:#python 3.4import pickle r = pickle.DEFAULT_PROTOCOLprint('version:', r)结果输出如下:version: 3 pickle.dump(obj, file, protocol=None, *, fix_imports=True) 把一个对象obj打包,并写入文件file。参数protocol是想使用打包协议的版本;参数fix_imports设置为True,如果协议版本小于3,则会尽量按Python2版本来打包。例子:#python 3.4import pickle with open(r'F:\temp\py\pk', 'wb') as f:    l = [2, 3, 4, 5]    r = pickle.dump(l, f)    print(r)结果输出如下:None在这个例子里,把列表对象l进行序列化,再把数据流写入文件对象f,这样就保存到磁盘上了。 pickle.dumps(obj, protocol=None, *, fix_imports=True) 把对象obj打包成一个bytes对象返回。参数与上面函数dump()一样。例子:#python 3.4import pickle l = [2, 3, 4, 5]r = pickle.dumps(l)print(r)结果输出如下:b'\x80\x03]q\x00(K\x02K\x03K\x04K\x05e.' pickle.load(file, *, fix_imports=True, encoding="ASCII", errors="strict") 从打开的文件里读取一个打包的对象,并解包返回此对象。参数encoding和errors是怎么样解析8位表示的字符串。其它参数与上面的函数是一样的。例子:#python 3.4import pickle with open(r'F:\temp\py\pk', 'rb') as f:    r = pickle.load(f)    print(r)结果输出如下:[2, 3, 4, 5] pickle.loads(bytes_object, *, fix_imports=True, encoding="ASCII", errors="strict") 从bytes字节对象里解包出来Python内部表示的对象。参数bytes_object是bytes表示的对象。其它参数与上面函数一样。例子:#python 3.4import pickle l = [2, 3, 4, 5]r = pickle.dumps(l)print(r)r = pickle.loads(r)print(r)结果输出如下:b'\x80\x03]q\x00(K\x02K\x03K\x04K\x05e.'[2, 3, 4, 5] exception pickle.PickleError 模块pickle异常基类。 exception pickle.PicklingError 当打包一个对象不能打包时,就抛出本异常。 exception pickle.UnpicklingError 当在解包时出错,就会抛出此异常。 在pickle模块里,主要定义了两个类供外面访问:Pickler和Unpickler。class pickle.Pickler(file, protocol=None, *, fix_imports=True)创建一个二进制文件,可以写入打包的数据流到文件。参数file是保存数据的文件名称;参数protocol是可选的协议版本号,值可以设置从0到HIGHEST_PROTOCOL,如果没有设置默读值是DEFAULT_PROTOCOL;参数fix_imports设置为True时,当版本号小于3,打包时就会转换Python3版本的名称为Python2版本的名称,以便在Python2版本里可以读取到打包的数据。 dump(obj) 本函数是写一个打包的数据对象到已经打开的文件对象里。 persistent_id(obj) 本函数默认时,什么也没有做,主要为了给派生类进行继承使用。如果本函数返回None,表示对象obj按普通方式打包;如果返回任何其它值,就会当作储存ID来保存,读取时可以根据这个储存ID来读取出来,比如调用Unpickler.persistent_load()函数来加载。 dispatch_table 主要用来为方法__reduce__()保存一个分配表。默认情况下,不会保存一个这样的分配表,使用全局的分配表。如果需要保存一个私有的分配表时需要自己创建一个。 fast本属性已经不再使用。如果设置为True值,表示使用快速模式。 class pickle.Unpickler(file, *, fix_imports=True, encoding="ASCII", errors="strict") 从一个二进制文件里读取打包的数据对象。参数file是保存数据的文件名称;参数protocol是可选的协议版本号,值可以设置从0到HIGHEST_PROTOCOL,如果没有设置默读值是DEFAULT_PROTOCOL;参数fix_imports设置为True时,当版本号小于3,打包时就会转换Python3版本的名称为Python2版本的名称,以便在Python2版本里可以读取到打包的数据。参数encoding是用来指明采用什么方式来读取8位的字符串对象;参数errors是用来表示读取对象时的错误处理方式。 load() 本函数从二进制文件里加载所有认识对象返回。 persistent_load(pid) 本函数默认弹出异常错误UnpicklingError。 find_class(module, name) 本函数从模块module里找到name对象返回,也可以使用于查找函数的返回。 
蔡军生  QQ:9073204 深圳
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  milang python