小白的Python之路 day5 shelve模块讲解详解编程语言

shelve模块讲解

一、概述

    之前我们说不管是json也好,还是pickle也好,在python3中只能dump一次和load一次,有什么方法可以向dump多少次就dump多少次,并且load不会出错,也不会出问题,现在开始介绍shelve模块,这个shelve模块是一个简单的key,value将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式

简单来说,使用者可以将一个列表、字典、或者用户自定义的类实例保存到shelve中,下次需要用的时候直接取出来,就是一个Python内存对象,不需要像传统数据库一样,先取出数据,然后用这些数据重新构造一遍所需要的对象。

 可以看出shelve模块和json对文件的操作是很像的,但是保存文件时有三个文件,如图:小白的Python之路 day5 shelve模块讲解详解编程语言

具体不用管这三个文件的格式,正常的读写就行了。


模块名称 描述 提供的api
json 用于实现Python数据类型与通用(json)字符串之间的转换 dumps()、dump()、loads()、load()
pickle 用于实现Python数据类型与Python特定二进制格式之间的转换 dumps()、dump()、loads()、load()
shelve 专门用于将Python数据类型的持久化到磁盘,shelf是一个类似dict的对象,操作十分便捷 open()

 

json,pickle用法点击这里http://www.cnblogs.com/ManyQian/p/8186045.html

 

二、常用方法

 

 1 import shelve 
 2  
 3 db = shelve.open('shelve_test') 
 4 # key与value必须是字符串 
 5 db['int'] = 1 
 6 db['float'] = 2.3 
 7 db['string'] = "I like python." 
 8 db['key'] = 'value' 
 9 db.close()    #存入数据 
10   
11 #这个可以另外写一个.py文件去读取 
12 db = shelve.open('shelve_test') 
13 print(db.get('int)') 
14 print(db.get('float')) 
15 print(db.get('string')) 
16 print(db.get('key')) 
17 db.close()    #读取数据 
18  
19 输出: 
20 1 
21 2.3 
22 I like python. 
23 value

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/12238.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论