zoukankan      html  css  js  c++  java
  • 小白的Python之路 day5 shelve模块讲解

    shelve模块讲解

    一、概述

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

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

     可以看出shelve模块和json对文件的操作是很像的,但是保存文件时有三个文件,如图:

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


    模块名称描述提供的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
  • 相关阅读:
    Sublime Text3添加到右键快捷菜单教程
    layui相关用法总结
    idea-----使用相关快捷键
    Redis相关语法
    idea-----怎样取消idea默认打开工程
    idea-----Idea在不关闭project的情况下进行Import Project
    Swagger2异常:Illegal DefaultValue null for parameter type integer java
    IntelliJ IDEA打jar时常遇见的问题
    Java的基本数据类型
    Java中对JSONArray中的对象进行排序
  • 原文地址:https://www.cnblogs.com/ManyQian/p/8270759.html
Copyright © 2011-2022 走看看