python学习——pickle模块详解

来源:互联网 发布:怎么做一个软件 编辑:程序博客网 时间:2024/06/04 18:52

python中的pickle模块是用来程序中运行的文档信息以二进制的形式保存在本地,并可以读取出来。
其基本方法有两个:

pickle.dump(obj,file)    #写入pickle.load(file)        #读取

具体用法如下:

1、pickle.dump(obj,file)
将一档字符串以二进制的形式写入到文件中。
关键:在open函数的时候,一定是write形式的,且为二进制,即‘wb’
举例说明:

import pickle       #使用该模块前需导入f = open('test.txt','wb')inlet = '''这只是一个小小的实例请一定要在电脑上自己敲出来只有这样你才能学好编程'''pickle.dump(inlet,f)     #将字符串以二进制的形式写入到'test.txt'中f.close()

我们在本地电脑打开该文件,可以看下:

€Xj   杩欏彧鏄竴涓皬灏忕殑瀹炰緥璇蜂竴瀹氳鍦ㄧ數鑴戜笂鑷繁鏁插嚭鏉?鍙湁杩欐牱浣犳墠鑳藉濂界紪绋?q .

二进制乱码格式。

如果在Python中打开呢?

f = open('test.txt')for i in f:    print(i)f.close()

得到;

Traceback (most recent call last):  File "C:/Users/Administrator/Desktop/111.py", line 4, in <module>    for i in f:UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 0: illegal multibyte sequence

出现编码错误。

有人可能会说,你用二进制写入的,自然要用二进制打开,没错。我们来试试。

f = open('test.txt','rb')for i in f:    print(i)f.close()

得到结果:

b'\x80\x03Xj\x00\x00\x00\xe8\xbf\x99\xe5\x8f\xaa\xe6\x98\xaf\xe4\xb8\x80\xe4\xb8\xaa\xe5\xb0\x8f\xe5\xb0\x8f\xe7\x9a\x84\xe5\xae\x9e\xe4\xbe\x8b\n'b'\xe8\xaf\xb7\xe4\xb8\x80\xe5\xae\x9a\xe8\xa6\x81\xe5\x9c\xa8\xe7\x94\xb5\xe8\x84\x91\xe4\xb8\x8a\xe8\x87\xaa\xe5\xb7\xb1\xe6\x95\xb2\xe5\x87\xba\xe6\x9d\xa5\n'b'\xe5\x8f\xaa\xe6\x9c\x89\xe8\xbf\x99\xe6\xa0\xb7\n'b'\xe4\xbd\xa0\xe6\x89\x8d\xe8\x83\xbd\xe5\xad\xa6\xe5\xa5\xbd\xe7\xbc\x96\xe7\xa8\x8b\n'b'q\x00.'

可以看出,确实没出现错误,但是这种二进制的语言也只有机器能读懂吧,我们想要的是之前写入的汉语。

所以,用pickle.dump写入的文件,自然还需要用pickle.load读出。

2、pickle.load(file)
关键依然是,打开文件的时候需要以二进制的形式打开:‘rb’

还是以刚才建立的’test.txt’文件为例:

import picklef = open('test.txt','rb')result = pickle.load(f)print(result)f.close()

得到结果:

这只是一个小小的实例请一定要在电脑上自己敲出来只有这样你才能学好编程
原创粉丝点击