python学习039-----python之文件(四):用pickle模块实现复杂文件存储

"泡菜模块":pickle
       我们之前学习了和文件相关的知识,我们知道,从文件中读取出字符串是相当容易的,但是读取数值就不容易了。因为无
论是read()方法还是readline()方法都是返回字符串,如果想要读取数值,我们还得进行下强制转换,把字符串转化成数值。同
样的,保存文件也有着同样的问题,如果我们保存的只是简单数值还好,转化成字符串保存就好。但如果我们保存的是列表、
字典、类的实例等复杂的数据结构的时候,就容易手足无措了。

       所幸,python提供了一个模块,可以将列表、字典等复杂的数据类型转化为二进制数据文件,这就是今天要学习的【pickle】模块。

我们把将数据转化为二进制文件存放的过程叫做pickling,把将二进制文件还原成数据的过程叫做unpickling。举例说明:

import pickle
my_list = [123, 3. 14, '小甲鱼', ['another list']]
pickle_file = open('my_list.pkl', 'wb')    
'''
注意两点:
1.文件后缀名只是起到提示的作用,不影响写入。
2.'wb'是二进制写入的意思,不要弄错了
'''
pickle.dump(my_list, pickle_file)
pickle_file.close()

       以上程序实现了将复杂数据经pickle模块处理,转化为二进制文件存放的功能。上面的程序执行后会生成一个二进制文件(按照惯例,后缀名一般为:pkl,写成其他的也行,不影响文件的写入。但是就算将其以txt文件存储,也是读取不了的,二进制文件需专用软件读取和打开。)和前面一样,文件写入完成后要记得关闭文件。

       pickle意为"腌菜",dump意为"倒",pikle.dump()这个方法就是将复杂的数据比作各种蔬菜,将数据存储过程比作腌咸菜,形象生动。

下面我们来学习如何读取刚才保存的二进制文件:

pickle_file = open('my_list.pkl','rb')
my_list2 = pickle.load(pickle_file)
print(my_list2)  #【输出】[123, 3.14, '小甲鱼', ['another list']]     

       上面费了很大的劲,才保存了一个列表,这还有意义吗?当然有!上面只是举例,数据量太小,看不出优势,当数据量很大的时候,优势便能够体现了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值