文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Pickle 序列化

Pickle 序列化

时间:2010-02-01  来源:angelia_liu

Pickle

使用pickle模块你可以把Python对象直接保存到文件,而不需要把他们转化为字符串,也不用底层的文件访问操作把它们写入到一个二进制文件里。pickle模块会创建一个python语言专用的二进制格式,你基本上不用考虑任何文件细节,它会帮你干净利落地完成读写独享操作,唯一需要的只是一个合法的文件句柄。

pickle 模块提供了以下函数对: dumps(object) 返回一个字符串,它包含一个 pickle 格式的对象; loads(string) 返回包含在 pickle 字符串中的对象; dump(object, file) 将对象写到文件,这个文件可以是实际的物理文件,但也可以是任何类似于文件的对象,这个对象具有 write() 方法,可以接受单个的字符串参数; load(file) 返回包含在 pickle 文件中的对象。

缺省情况下, dumps() 和 dump() 使用可打印的 ASCII 表示来创建 pickle。两者都有一个 final 参数(可选),如果为 True ,则该参数指定用更快以及更小的二进制表示来创建 pickle。 loads() 和 load() 函数自动检测 pickle 是二进制格式还是文本格式。

cPickle是用C语文编写的比pickle更高级的pickle. 我们可以通过以下语句来引入cPickle,并把cPickle当作pickle来使用:

   >>> import cPickle as pickle

关于load的简例:

import pickle,urllib

banner=urllib.urlopen('http://www.pythonchallenge.com/pc/def/banner.p')
obj=pickle.load(banner) # 这里load的是一个文件类型数据:banner
out=open('E:\python challenge\pickle.txt','w')

for list in obj:
    for tuple in list:
        out.write(str(tuple[0]*tuple[1]))
    out.write('\n')

out.close()


关于pickle.loads的简例:

import pickle
import urllib
import sys
import os

if __name__=='__main__':
    src=urllib.urlopen('http://www.pythonchallenge.com/pc/def/banner.p').read()
    banner=pickle.loads(src) #这里loads的是字符串src
    for line in banner:
        print "".join(map(lambda pair:pair[0]*pair[1],line))
        


相关阅读 更多 +
排行榜 更多 +
找茬脑洞的世界安卓版

找茬脑洞的世界安卓版

休闲益智 下载
滑板英雄跑酷2手游

滑板英雄跑酷2手游

休闲益智 下载
披萨对对看下载

披萨对对看下载

休闲益智 下载