shelve 模块概述:
  

    shelve是python的自带model。

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

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

    使用方法也类似于字典。

  shelve 模块 与 pickle 不同之处在于 不需要关心文件模式什么  直接把它当成一个字典来看待

    它可以直接对数据进行修改 而不用覆盖原来的数据

    而pickle 你想要修改只能 用wb 模式来覆盖

# 保存对象至 shelve文件中:
import shelve
user = {"name":"高根"}
s = shelve.open("userdb.shv") #打开一个文件
s["user"] = user #向文件中添加内容,添加方式与给字典添加键值对相同
s.close() # 关闭 文件
# 从文件中读取对象:
s = shelve.open("userdb.shv") #打开文件
print(s["user"]) #像从字典中获取键的方式一样读取内容
s.close() #关闭文件
#更新(添加)文件中的数据:
s = shelve.open('userdb.shv') #打开文件
f = s["user"] # 从文件中读取之前存储的对象
f['age'] = 200 #直接对 对象进行添加
s['user'] = f #重新存储至字典文件对象中
print(s["user"]) #打印结果
s.close() #关闭文件

shelve 模块的更多相关文章

  1. python序列化: json & pickle & shelve 模块

    一.json & pickle & shelve 模块 json,用于字符串 和 python数据类型间进行转换pickle,用于python特有的类型 和 python的数据类型间进 ...

  2. python pickle 和 shelve模块

    pickle和shelve模块都可以把python对象存储到文件中,下面来看看它们的用法吧 1.pickle 写: 以写方式打开一个文件描述符,调用pickle.dump把对象写进去 dn = {'b ...

  3. shelve模块

    #coding:utf-8 __author__ = 'similarface' #email:similarface@outlook.com ''' shelve模块: 映射容器 存储对象,被存储的 ...

  4. s14 第5天 时间模块 随机模块 String模块 shutil模块(文件操作) 文件压缩(zipfile和tarfile)shelve模块 XML模块 ConfigParser配置文件操作模块 hashlib散列模块 Subprocess模块(调用shell) logging模块 正则表达式模块 r字符串和转译

    时间模块 time datatime time.clock(2.7) time.process_time(3.3) 测量处理器运算时间,不包括sleep时间 time.altzone 返回与UTC时间 ...

  5. 小白的Python之路 day5 shelve模块讲解

    shelve模块讲解 一.概述 之前我们说不管是json也好,还是pickle也好,在python3中只能dump一次和load一次,有什么方法可以向dump多少次就dump多少次,并且load不会出 ...

  6. python之shelve模块详解

    一.定义 Shelve是对象持久化保存方法,将对象保存到文件里面,缺省(即默认)的数据存储文件是二进制的. 二.用途 可以作为一个简单的数据存储方案. 三.用法 使用时,只需要使用open函数获取一个 ...

  7. Python全栈之路----常用模块----序列化(json&pickle&shelve)模块详解

    把内存数据转成字符,叫序列化:把字符转成内存数据类型,叫反序列化. Json模块 Json模块提供了四个功能:序列化:dumps.dump:反序列化:loads.load. import json d ...

  8. os常用模块,json,pickle,shelve模块,正则表达式(实现运算符分离),logging模块,配置模块,路径叠加,哈希算法

    一.os常用模块 显示当前工作目录 print(os.getcwd()) 返回上一层目录 os.chdir("..") 创建文件包 os.makedirs('python2/bin ...

  9. json,pickle,shelve模块,xml处理模块

    常用模块学习—序列化模块详解 什么叫序列化? 序列化是指把内存里的数据类型转变成字符串,以使其能存储到硬盘或通过网络传输到远程,因为硬盘或网络传输时只能接受bytes. 为什么要序列化? 你打游戏过程 ...

  10. python的shelve模块

    shelve shelve是一额简单的数据存储方案,他只有一个函数就是open(),这个函数接收一个参数就是文件名,并且文件名必须是.bat类型的.然后返回一个shelf对象,你可以用他来存储东西,就 ...

随机推荐

  1. 华为MAC Flapping , MAC的漂移

    华为写的很详细,MAC 地址的漂移会导致流量的中断. 华为阻止MAC地址漂移的方法有三种: 一.端口配置静态MAC地址 在全局视图下,执行命令mac-address static mac-addres ...

  2. CONTINUE...?模拟分情况

    CONTINUE...? DreamGrid has  classmates numbered from  to . Some of them are boys and the others are ...

  3. dfs实现数的全排列

    代码 #include<bits/stdc++.h> using namespace std; #define ll long long bool vis[15]; int a[15]; ...

  4. main函数如何调用文件外的函数

  5. jQuery中.html(“xxx”)和.append("xxx")有什么区别

    append是追加,html是完全替换比如<p id="1"><p>123</p></p>$("#1").htm ...

  6. RabbitMQ防止消息丢失

    转载请注明出处 0.目录 RabbitMQ-从基础到实战(1)— Hello RabbitMQ RabbitMQ-从基础到实战(3)— 消息的交换 1.简介 RabbitMQ中,消息丢失可以简单的分为 ...

  7. I/O中断处理详细过程

    1.CPU发送启动I/O设备的命令,将I/O接口中的B触发器置1,D触发器置O. 2.设备开始工作,需要向CPU传送数据时,将数据送入数据缓冲器中. 3.输入设备向I/O接口发出“设备工作结束”的信号 ...

  8. centos 6.9:device eth0 does not seem to be present

    VMware上安装centos6.9,克隆一个新虚机,网卡不能桥接获得宿主机网络地址. https://blog.csdn.net/xiaobei4929/article/details/405152 ...

  9. css 图片文字垂直居中

    先来看张图片 相信很多css新手遇到过这种问题,就是当图片和文本显示在一行的时候,效果很奇葩,文字和图片没法对齐, 这时我们需要做的是: 1,先给块级元素设置 display: inline-bloc ...

  10. C#复习笔记(5)--C#5:简化的异步编程(异步编程的基础知识)

    异步编程的基础知识 C#5推出的async和await关键字使异步编程从表面上来说变得简单了许多,我们只需要了解不多的知识就可以编写出有效的异步代码. 在介绍async和await之前,先介绍一些基础 ...