0. pickle的实质是什么?;,c4f
nhjFHy,GKi'@7{BC.#m3&b1sdpx>wA
答:pickle的实质就是利用一些算法将你的数据对象“腌制”成二进制文件,存储在磁盘上,当然也可以放在数据库或者通过网络传输到另一台计算机上。8i6XL=2B
PD=RpL Sye<M{l|]!iF3m_0KnZ
1. 使用pickle的什么方法存储数据??Kx"L0j;|
d19{OQ<eW0fcG*w68YK'
答:pickle.dump(data, file) # 第一个参数是待存储的数据对象,第二个参数是目标存储的文件对象,注意要先使用'wb'的模式open文件哦^_^"b2^&a
EB>r8'AP 23:Le9V?k;^yp
2. 使用pickle的什么方法读取数据?<PD#@
dH;!z?luR0yA]V$#vJ1Ncswg
答:pickle.load(file) # 参数是目标存储的文件对象,注意要先使用'rb'的模式open文件哦^_^ j'MXE
g=&}<9K]_OwUzjiq
3. 使用pickle能不能保存为”*.txt”类型的文件?8G}0A
ow5YtsF|8R`O^,n_!+-N6D4(
答:可以,不过打开后是乱码,因为是以二进制的模式写入的。l

一、pickle模块的基本操作:

1、pickle.dump(obj, file)写入数据存储,注意要先使用'wb'的模式open文件

obj:文件

file:文件对象

2、pickle.load(file)读取pickle腌制的文件,注意要先使用'rb'的模式open文件

file:文件对象

>>> import pickle
>>> mylist = [123, 3.14, '小甲鱼', ['another list']]
>>> mylist
[123, 3.14, '小甲鱼', ['another list']]
>>> pickle_file = open('mylist.pkl', 'wb') #以二进制写形式打开创建一个名为mylist.pkl的文件,也可以是.txt文件
>>> pickle.dump(mylist, pickle_file) #将列表mylist存储到文件对象pickle_file中
>>> pickle_file.close() #存储完之后要关闭文件对象pickle_file完成缓存>>> pickle_file = open('mylist.pkl', 'rb') #以二进制读形式打开文件
>>> mylist2 = pickle.load(pickle_file) #从文件对象pickle_file读取数据
>>> print(mylist2)
[123, 3.14, '小甲鱼', ['another list']]
>>> 

这个腌制好的文件(pickle)和普通文件有什么区别呢?

pickle可以将列表、元组、字典等对象长久地存储到文件中,以及从文件中读取这些对象,和普通文件没有区别,pickle 的默认格式是二进制格式

0. 编写一个程序,这次要求使用pickle将文件(record.txt)里的对话按照以下要求腌制成不同文件(没错,是第29讲的内容小改,考考你自己能写出来吗?):piQM2$v

  • 小甲鱼的对话单独保存为boy_*.txt的文件(去掉“小甲鱼:”)
  • 小客服的对话单独保存为girl_*.txt的文件(去掉“小客服:”)
  • 文件中总共有三段对话,分别保存为boy_1.txt, girl_1.txt,boy_2.txt, girl_2.txt, boy_3.txt, gril_3.txt共6个文件(提示:文件中不同的对话间已经使用“==========”分割)
import pickledef save_file(boy, girl, count):file_name_boy = 'boy_' + str(count) + '.txt'file_name_girl = 'girl' + str(count) + '.txt'#boy_file = open(file_name_boy, 'w')#girl_file = open(file_name_girl, 'w')#boy_file .writelines(boy)#girl_file .writelines(girl)boy_file = open(file_name_boy, 'wb')girl_file = open(file_name_girl, 'wb')pickle.dump(boy, boy_file)pickle.dump(girl, girl_file)boy_file.close()girl_file.close()def split_file(file_name):f = open(file_name, encoding='utf-8')boy = []girl = []count = 1for each_line in f:if each_line[:6] != '======':(role, line_spoken) = each_line.split(':', 1)if role == '小甲鱼':boy.append(line_spoken)if role == '小客服':girl.append(line_spoken)else:save_file(boy, girl, count)boy = []girl = []count += 1save_file(boy, girl, count)f.close()split_file(r'D:\Program Files\1\31讲\record.txt')

[学习笔记] Python【第031讲:永久存储:腌制一缸美味的泡菜】总结相关推荐

  1. 第031讲:永久存储:腌制一缸美味的泡菜

    0. 请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方式! 我们之前学习了文件和文件系统,我们知道从一个文件里面去读取字符串是非常简单的,但是你如果要试图读取出数值的话,name就要 ...

  2. 永久存储:腌制一缸美味的泡菜+习题复习

    ##腌制一缸美味的泡菜             (我们之前学习了文件和文件系统,我们知道从一个文件里面去读取字符串是非常简单的,但是你如果要试图读取出数值的话,那么就要多费点周折了,因为无论你是使用r ...

  3. 《零基础入门学习Python》第031讲:永久存储:腌制一缸美味的泡菜

    目录 0. 请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方式! 测试题 0. pickle的实质是什么? 1. 使用pickle的什么方法存储数据? 2. 使用pickle的什么方 ...

  4. 第031讲:永久存储,腌制一缸美味的泡菜 | 学习记录(小甲鱼零基础入门学习Python)

    (标答出处: 鱼C论坛) <零基础入门学习Python> 测试题: 0.pickle的实质是什么? pickle的实质是利用一些算法,将你的数据对象腌制成二进制文件,存储在磁盘上,也可以放 ...

  5. 学习笔记-小甲鱼Python3学习第三十一讲:永久存储:腌制一缸美味的泡菜

    pickle函数 打开--读/写--关闭 看个例子: >>> import pickle#导入pickle()函数 >>> my_list = [123,23.23 ...

  6. 零基础入门学习Python(31)--永久存储:腌制一缸美味的泡菜

    知识点 pickle( 泡菜 ) 模块介绍: pickle模块作用是持久化的储存数据. 在Python程序运行中得到了一些字符串.列表.字典等数据,想要长久的保存下来,方便以后使用,而不是简单的放入内 ...

  7. 学习笔记:Python 面试100讲(基于Python3.x)05-python综合题

    01-read.readline.readlines区别 一 如何打开和读取文本内容 二 使用open函数打开文件,并返回一个IO对象,该对象有3个用于读取文件的方法, 分别为read.readlin ...

  8. [小甲鱼] 零基础入门python第031讲课后测试题及答案:永久存储,腌制一缸美味的泡菜

    测试题: 0.pickle的实质是什么?    pickle的实质是利用一些算法,将你的数据对象腌制成二进制文件,存储在磁盘上,也可以放在数据库或者传到另一台电脑上 1.使用pickle的什么方法存储 ...

  9. 第31讲:永久存储:腌制一缸美味的泡菜

    测试题: 0:pickle的实质是什么? 答:pickle的实质就是利用一些算法将你的数据对象'腌制'成二进制文件,存储在磁盘上,当然也可以放在数据库或者通过网络传输到另一台计算机上.pickle的实 ...

最新文章

  1. 在文件中读取列表功能
  2. Linux内核分析(三)----初识linux内存管理子系统
  3. 老生常谈session,cookie的区别,安全性
  4. 人物志 | KDD Cup 2017双料冠军燕鹏
  5. C++ const成员变量和成员函数
  6. 计算机主机拆解,计算机硬件系统及主机拆解..ppt
  7. Linux--安装截图工具Shutter
  8. 大家都认为烧烤店是“暴利”行业
  9. 自学python买什么教材-从入门到进阶必看,51本Python精品书籍免费送!
  10. 人脸识别门禁系统有哪些功能作用
  11. linux autorun.sh,linux autorun使用详解
  12. 淘宝API 如何获取颜色 尺码 属性表
  13. DS18B20数字温度计使用(转)
  14. 关于十七届恩智浦杯安徽赛区基础组参赛分享
  15. mybatis 开启日志记录 打印sql语句
  16. 荣耀magic3参数配置
  17. win10 opencv-4.1.0 环境配置
  18. CenterPoint 学习笔记
  19. 王者荣耀转区仅显示可转移服务器,王者荣耀角色迁移是什么 怎么转区
  20. 人大计算机系学霸,中国人民大学8个最强专业,有的超越清华北大,软肋也比较明显...

热门文章

  1. 优秀开源项目推荐之--文档库bookstack
  2. 股票每日复盘都应该做什么,需要从哪些方面复盘?
  3. python 制作刷题程序
  4. 如何取消QQ看点的消息通知?
  5. 设计一可控同步四进制可逆计数器, 其由输入X1,X2控制, 用D触发器和74153及必要的门电路实现
  6. MATLAB根据正态分布样本计算概率密度函数,生成服从样本正态分布的随机数
  7. svg html转换器,如何在浏览器中使用JavaScript将HTML SVG节点转换为Base64
  8. 【SQL监控】SQL完全监控的脚本
  9. 使用阿里云提供的短信服务发送短信(个人版)
  10. java无法验证发布者_Win10系统提示无法验证发布者的解决技巧