Python标准库pickle

来源:互联网 发布:知天下资源吧手机版 编辑:程序博客网 时间:2024/06/04 19:26

Python提供了一个标准库,名为pickle,它可以保存和加载几乎任何Python数据对象,包括列表。

使用pickle很简单:只需要导入所需的模块,然后使用dump()保存数据,以后某个时间使用load()恢复数据。处理数据时的唯一要求是,必须以二进制访问模式打开这些文件。

>>> import pickle>>> with open('mydata.pickle','wb')as mysavedata:pickle.dump([1,2,'Three'],mysavedata)>>> with open('mydata.pickle','rb')as myrestoredata:a_list=pickle.load(myrestoredata)>>> print(a_list)[1, 2, 'Three']

“腌制”后的数据:mydata.pickle

“b”告诉Python以二进制模式打开数据文件。


腌制或者解除数据腌制时如果出了问题,pickle模块会产生一个PickleError

腌制:

try:    with open('man_data.txt','wb') as man_file,open('woman_data.txt','wb')as woman_file:        pickle.dump(man,man_file)        pickle.dump(woman,woman_file)except IOError as err:    print('File error:'+str(err))except pickle.PickleError as perr:    print('Pickling error:'+str(perr))
读取(解除):

try:    with open('man_data.txt','rb') as man_file,open('woman_data.txt','rb')as woman_file:        new_man = pickle.load(man_file)        new_woman = pickle.load(woman_file)except IOError as err:    print('File error:'+str(err))except pickle.PickleError as perr:    print('Pickling error:'+str(perr))

展示:

>>> nester.print_lol(new_man)Hi.How are you?I'm file,too.Thanks.>>> nester.print_lol(new_woman)Hi.I'm fine,thank you.And you?Okay.hi:



0 0
原创粉丝点击