python学习——pickle模块详解
2017-08-24 20:37
537 查看
python中的pickle模块是用来程序中运行的文档信息以二进制的形式保存在本地,并可以读取出来。
其基本方法有两个:
具体用法如下:
1、pickle.dump(obj,file)
将一档字符串以二进制的形式写入到文件中。
关键:在open函数的时候,一定是write形式的,且为二进制,即‘wb’
举例说明:
我们在本地电脑打开该文件,可以看下:
二进制乱码格式。
如果在Python中打开呢?
得到;
出现编码错误。
有人可能会说,你用二进制写入的,自然要用二进制打开,没错。我们来试试。
得到结果:
可以看出,确实没出现错误,但是这种二进制的语言也只有机器能读懂吧,我们想要的是之前写入的汉语。
所以,用pickle.dump写入的文件,自然还需要用pickle.load读出。
2、pickle.load(file)
关键依然是,打开文件的时候需要以二进制的形式打开:‘rb’
还是以刚才建立的’test.txt’文件为例:
得到结果:
其基本方法有两个:
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< 4000 span class="hljs-command">\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 pickle f = open('test.txt','rb') result = pickle.load(f) print(result) f.close()
得到结果:
这只是一个小小的实例 请一定要在电脑上自己敲出来 只有这样 你才能学好编程
相关文章推荐
- python学习——python os.path模块常用方法详解
- Python模块学习 -- pickle, cPickle 对象序列化/反序列化
- python中pickle模块学习
- Python学习之logging模块详解
- Python学习之日志模块详解
- python 序列化及其相关模块(json,pickle,shelve,xml)详解
- python中pickle模块学习
- Python学习笔记:详解random模块和time模块
- Python模块学习 ---- pickle, cPickle 对象序列化/反序列化
- 【python】使用pickle模块将pickle.dump()、pickle.load()封装实例详解
- Python3 学习第十三弹: 模块学习五之pickle与json
- python pickle模块 分类: python学习 2014-12-01 16:01 129人阅读 评论(0) 收藏
- python学习之路(json & pickle 模块 ---序列化,反序列化)
- python数据持久存储:pickle模块的基本使用 分类: python python基础学习 python 小练习 2013-06-17 14:41 209人阅读 评论(0) 收藏
- Python pickle模块学习
- python序列化pickle模块和json模块简单学习
- Python学习之psutil模块详解
- Python学习之[7]——python pickle模块
- Python模块学习 ---- pickle, cPickle 对象序列化/反序列化
- Python pickle模块学习(超级详细)