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()
得到结果:
这只是一个小小的实例请一定要在电脑上自己敲出来只有这样你才能学好编程
阅读全文
0 0
- python学习——pickle模块详解
- python pickle模块详解
- Python pickle模块学习
- python pickle模块学习
- Python pickle模块学习
- Python学习之[7]——python pickle模块
- Python的pickle模块详解
- Python pickle模块学习笔记
- python中pickle模块学习
- Python 基础—— pickle 模块
- Python标准模块——pickle
- Python序列化——pickle模块
- python模块 - pickle模块
- Python pickle模块学习(超级详细)
- Python pickle模块学习(超级详细)
- python基础学习之pickle模块
- Python pickle模块学习(超级详细)
- Python pickle模块学习(超级详细)
- maven 自动部署 tomcat
- Android studio 单独设置Logcat字体大小,单独设置代码编辑区字体大小
- matlab2c使用c++实现matlab函数系列教程-hankel函数
- mui框架 手机扫码 CODE128扫不出来解决办法
- 【Android】圆角边框Button的实现
- python学习——pickle模块详解
- c/c++标准预定义宏
- codeforces Round 256(Div.2)D.Multiplication Table(二分)
- 图片的预览处理----多点触控放缩/双击放大缩小/viewPager冲突解决
- 2017-8-24股票复盘
- zTree的简单使用
- Swift3游戏开发(spritekit)如何使用多个动作在一张的图片
- 如何编写一个shell脚本
- C++学习记录