shelve是python的自带model。

可以直接通过import shelve来引用。

shelve类似于一个存储持久化对象的持久化字典,即字典文件。

使用方法也类似于字典。

保存对象至shelve文件中:

  1. import shelve
  2. wangzhe = dict(zip(['name','age'],['wangzhe',24]))
  3. lijianguo = dict(zip(['name','age'],['lijianguo',25]))
  4. db = shelve.open('shelveDict')  #打开一个文件
  5. db['wangzhe'] = wangzhe   #向文件中添加内容,添加方式与给字典添加键值对相同
  6. db['lijianguo'] = lijianguo
  7. db.close()   #关闭文件

从文件中读取对象:

  1. import shelve
  2. db = shelve.open('shelveDict')  #打开文件
  3. print db['wangzhe']  #向从字典中获取键的方式一样读取内容
  4. print db['lijianguo']  #结果为{'age': 25, 'name': 'lijianguo'}
  5. db.close()  #关闭文件

更新文件中的数据:

注意:如果key对应的value是一个列表,不能直接列表中元素wangzhe['name'] [1] = 'A'

  可以wangzhe['name']  = ['A',.......]

    1. import shelve
    2. db = shelve.open('shelveDict')  #打开文件
    3. wangzhe = db['wangzhe']     #从文件中读取之前存储的对象
    4. wangzhe['name'] = 'wang zhe'   #直接对对象进行修改
    5. db['wangzhe'] = wangzhe     #重新存储至字典文件对象中
    6. print db['wangzhe']     #结果如下{'age': 24, 'name': 'wang zhe'}
    7. db.close()   #关闭文件

Python模块之shelve的更多相关文章

  1. python 模块之-shelve

    shelve模块比pickle模块简单,只有一个open函数,返回类似字典的对象,可读可写;key必须为字符串,而值可以是python所支持的数据类型 import shelve f = shelve ...

  2. python模块之shelve,xml,hashlib,configpaser

    shelve shelve模块也是一种可以将数据序列化的模块 使用方法 1. open 2. 读写 3. close 特点:使用方法比较简单 提供一个文件名字就可以开始读写,读写的方法和字典一致;跨平 ...

  3. python模块:shelve

    shelve 1)模块功能:以 key - value 的方式存储数据. 2)写数据 >>> import shelve >>> db = shelve.open( ...

  4. python模块--pickle&json&shelve

    使用file文件处理时,写入的必须是str ,否则会报错. 例如:要把一个字典写入文件,写入时会报错 ,就算转换成str格式写入,读取的时候也不能按照dict格式读. >>> inf ...

  5. python模块-json、pickle、shelve

    json模块 用于文件处理时其他数据类型与js字符串之间转换.在将其他数据类型转换为js字符串时(dump方法),首先将前者内部所有的单引号变为双引号,再整体加上引号(单或双)转换为js字符串:再使用 ...

  6. python常用模块之shelve模块

    python常用模块之shelve模块 shelve模块是一个简单的k,v将内存中的数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据类型 我们在上面讲json.pickle ...

  7. Python模块 shelve xml configparser hashlib

    常用模块1. shelve 一个字典对象模块 自动序列化2.xml 是一个文件格式 写配置文件或数据交换 <a name="hades">123</a>3. ...

  8. Python模块:shutil、序列化(json&pickle&shelve)、xml

    shutil模块: 高级的 文件.文件夹.压缩包 处理模块 shutil.copyfileobj(fscr,fdst [, length])   # 将文件内容拷贝到另一个文件中 import shu ...

  9. Python之路【第八篇】:Python模块

    阅读目录 一.模块和包 模块(module)的概念: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到 ...

随机推荐

  1. 计算 S=a+aa+aaa+aaaa+a.......a【转载】

    package java算法; import java.util.Scanner; /* * 计算 S=a+aa+aaa+aaaa+a.......a */ public class numadd { ...

  2. Android手机使用广播监听手机收到的短信

    我们使用的Android手机在收到短信的时候会发出一条系统广播.该条广播中存放着接收到的短信的详细信息.本文将详细介绍如何通过动态注册广播来监听短信. 注册广播有两种方式,一种是动态注册,另一种是静态 ...

  3. nodejs tutorials

    设置npm的镜像为淘宝镜像 npm config list npm config set registry " https://registry.npm.taobao.org "

  4. specified属性

  5. [LeetCode&Python] Problem 590. N-ary Tree Postorder Traversal

    Given an n-ary tree, return the postorder traversal of its nodes' values. For example, given a 3-ary ...

  6. JavaScript高级程序设计——闭包

    前言 有很多人搞不清匿名函数和闭包这两个概念,经常混用.闭包是指有权访问另一个函数作用域中的变量的函数.匿名函数就是没有实际名字的函数. 闭包 概念 闭包,其实是一种语言特性,它是指的是程序设计语言中 ...

  7. How Many Tables 简单并查集

    Today is Ignatius' birthday. He invites a lot of friends. Now it's dinner time. Ignatius wants to kn ...

  8. test20180922 交错的字符串

    题意 分析 这个数据范围容易使人想到折半搜索. 我们将字符串分为前后两部分.如果前半部分中搜得的前缀串为{S1, S2},那么后半部分中搜得的后缀串必须为{rev(S2), rev(S1)},且为有序 ...

  9. 在Docker中运行crontab

    在把自己的项目通过Docker进行打包时,由于项目中用到了crontab,不过使用到的基础镜像python:3.6-slim并没有安装这项服务,记录下在镜像中安装和配置crontab的过程. Dock ...

  10. 使用 dl 设计的简单的登陆界面 (为了记录)

    先贴图 对应的地方放置 一些登陆的图片即可 html 代码如下: <html><head><style>body {text-align:center;margin ...