python pickle 和 shelve模块的用法

1.pickle

写: 以写方式打开一个文件描述符,调用pickle.dump把对象写进去


代码如下:

dn = {'baidu':'www.baidu.com','qq':'www.qq.com','360':'www.360.cn'}

name = ['mayun','mahuateng','liyanhong']

f = open(r'C:\a.txt','w')

pickle.dump(dn,f)      ##写一个对象

pickle.dump(name,f)  ##再写一个对象

f.close()

读:以读的方式打开文件描述符,调用pickle.load加载对象

f = open(r'C:\a.txt')

pickle.load(f)             ##加载一个对象

pickle.load(f)             ##加载另一个对象

f.close()

2.shelve

shelve模块比pickle模块简单,只有一个open函数,返回类似字典的对象,可读可写


代码如下:

f = shelve.open(r'C:\b.txt')

f  ##返回空字典

f['baidu'] = 'www.baidu.com'

f['qq'] = 'www.qq.com'

f['360'] = 'www.360.cn'

f  ##返回字典

f.close()

f = shelve.open(r'C:\b.txt')

f ##返回字典f

(0)

相关推荐

  • python3 shelve模块的详解

    python3 shelve模块的详解 一.简介 在python3中我们使用json或者pickle持久化数据,能dump多次,但只能load一次,因为先前的数据已经被后面dump的数据覆盖掉了.如果我们想要实现dump和load多次,可以使用shelve模块.shelve模块可以持久化所有pickle所支持的数据类型. 二.持久化数据 1.数据持久化 import shelve import datetime info = {'name': 'bigberg', 'age': 22} name

  • 举例简单讲解Python中的数据存储模块shelve的用法

    shelve类似于一个key-value数据库,可以很方便的用来保存Python的内存对象,其内部使用pickle来序列化数据,简单来说,使用者可以将一个列表.字典.或者用户自定义的类实例保存到shelve中,下次需要用的时候直接取出来,就是一个Python内存对象,不需要像传统数据库一样,先取出数据,然后用这些数据重新构造一遍所需要的对象.下面是简单示例: import shelve def test_shelve(): # open 返回一个Shelf类的实例 # # 参数flag的取值范围

  • python实现通过shelve修改对象实例

    本文实例讲述了python实现通过shelve修改对象的方法,分享给大家供大家参考. 具体实现方法如下: import shelve she = shelve.open('try.she','c') for c in 'spam': she[c] = {c:23} for c in she.keys(): print c,she[c] she.close() she = shelve.open('try.she','c') print she['p'] she['p']['p'] = 42 #这

  • Python中的anydbm模版和shelve模版使用指南

    好久没写这系列的文章了,我越来越喜欢用python了,它在我的工作中占据的比例越来越大.废话少说,直接进入主题. anydbm允许我们将一个磁盘上的文件与一个"dict-like"对象关联起来,操作这个"dict-like"对象,就像操作dict对象一样,最后可以将"dict-like"的数据持久化到文件.对这个"dict-like"对象进行操作的时候,key和value的类型必须是字符串.下面是使用anydbm的例子: #c

  • shelve 用来持久化任意的Python对象实例代码

    shelve -- 用来持久化任意的Python对象 这几天接触了Python中的shelve这个module,感觉比pickle用起来更简单一些,它也是一个用来持久化Python对象的简单工具.当我们写程序的时候如果不想用关系数据库那么重量级的东东去存储数据,不妨可以试试用shelve.shelf也是用key来访问的,使用起来和字典类似.shelve其实用anydbm去创建DB并且管理持久化对象的. 创建一个新的shelf 直接使用shelve.open()就可以创建了 import shel

  • 详解Python之数据序列化(json、pickle、shelve)

    一.前言 1. 现实需求 每种编程语言都有各自的数据类型,其中面向对象的编程语言还允许开发者自定义数据类型(如:自定义类),Python也是一样.很多时候我们会有这样的需求: 把内存中的各种数据类型的数据通过网络传送给其它机器或客户端: 把内存中的各种数据类型的数据保存到本地磁盘持久化: 2.数据格式 如果要将一个系统内的数据通过网络传输给其它系统或客户端,我们通常都需要先把这些数据转化为字符串或字节串,而且需要规定一种统一的数据格式才能让数据接收端正确解析并理解这些数据的含义.XML 是早期被

  • Python使用shelve模块实现简单数据存储的方法

    本文实例讲述了Python使用shelve模块实现简单数据存储的方法.分享给大家供大家参考.具体分析如下: Python的shelve模块提供了一种简单的数据存储方案,以dict(字典)的形式来操作数据. #!/usr/bin/python import sys, shelve def store_person(db): """ Query user for data and store it in the shelf object """ pi

  • python pickle 和 shelve模块的用法

    1.pickle 写: 以写方式打开一个文件描述符,调用pickle.dump把对象写进去 复制代码 代码如下: dn = {'baidu':'www.baidu.com','qq':'www.qq.com','360':'www.360.cn'} name = ['mayun','mahuateng','liyanhong'] f = open(r'C:\a.txt','w') pickle.dump(dn,f)      ##写一个对象 pickle.dump(name,f)  ##再写一个

  • Python数据持久化shelve模块用法分析

    本文实例讲述了Python数据持久化shelve模块用法.分享给大家供大家参考,具体如下: 一.简介 在python3中我们使用json或者pickle持久化数据,能dump多次,但只能load一次,因为先前的数据已经被后面dump的数据覆盖掉了.如果我们想要实现dump和load多次,可以使用shelve模块.shelve模块可以持久化所有pickle所支持的数据类型. 二.持久化数据 1.数据持久化 import shelve import datetime info = {'name':

  • python threading和multiprocessing模块基本用法实例分析

    本文实例讲述了python threading和multiprocessing模块基本用法.分享给大家供大家参考,具体如下: 前言 这两天为了做一个小项目,研究了一下python的并发编程,所谓并发无非多线程和多进程,最初找到的是threading模块,因为印象中线程"轻量...","切换快...","可共享进程资源..."等等,但是没想到这里水很深,进而找到了更好的替代品multiprocessing模块.下面会讲一些使用中的经验. 后面出现的

  • Python学习之os模块及用法

    os 模块代表了程序所在的操作系统,主要用于获取程序运行所在操作系统的相关信息. 在 Python 的交互式解释器中先导入 os 模块,然后输入 os.__all__ 命令(__all__ 变量代表了该模块开放的公开接口),即可看到该模块所包含的全部属性和函数. 此处仅介绍 os 模块中常用的属性和函数: os.name:返回导入依赖模块的操作系统名称,通常可返回 'posix'.'nt'. 'java' 等值其中之一. os.environ:返回在当前系统上所有环境变量组成的字典. os.fs

  • Python base64和hashlib模块及用法详解

    目录 一.base64模块 1.对字符串编解码 2.对URL编解码 二.hashlib模块 1.hashlib模块 1.1 常用属性 1.2 常用方法 1.3 使用步骤 2.MD5(消息摘要算法) 3.SHA-256(安全哈希算法) 一.base64模块 base64模块提供了在二进制数据和可打印ASCII字符间编解码的功能,包括 RFC3548中定义的Base16, Base32, Base64, Ascii85, Base85等编码. base64模块属于标准库,无需进行安装,导入即可使用.

  • Python中asyncore异步模块的用法及实现httpclient的实例

    基础 这个模块是socket的异步实现,让我们先来熟悉一下模块中的一些类和方法: 1.asyncore.loop 输入一个轮询循环直到通过计数或打开的通道已关闭. 2.asyncore.dispatcher dispatcher类是一个底层socket类的包装对象.要使它更有用, 它有一部分事件处理方法被异步循环调用.否则它就是一个标准的非阻塞socket对象. 底层的事件在特定事件或特定的连接状态告诉异步循环,某些高级事件发生了.例如, 我们要求一个socket连接到另一个主机. (1)han

  • Python select及selectors模块概念用法详解

    1. select模块 针对select,要先理解其他几个概念: 文件描述符: 文件描述符在形式上是一个非负整数.实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表.当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符. 内核空间: Linux简化了分段机制,使得虚拟地址与线性地址总是一致,因此,Linux的虚拟地址空间也为0-4G.Linux内核将这4G字节的空间分为两部分.将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供

  • Python代码执行时间测量模块timeit用法解析

    1.timeit模块 timeit模块可以用来测试一小段python代码的执行速度 class timeit.Timer(stmt = 'pass',setup = 'pass',timer=<timer function>) Timer是测量小段代码执行速度的类 stmt参数是要测试的代码语句(statment); setup参数是运行代码时需要的设置: timer参数是一个定时器函数,与平台有关(windows,unix,linux,mac). timeit.timer(number =

  • Python pickle模块用法实例分析

    本文实例讲述了Python pickle模块用法.分享给大家供大家参考.具体分析如下: pickle提供了一个简单的持久化功能.可以将对象以文件的形式存放在磁盘上. pickle.dump(obj, file[, protocol]) 序列化对象,并将结果数据流写入到文件对象中.参数protocol是序列化模式,默认值为0,表示以文本的形式序列化.protocol的值还可以是1或2,表示以二进制的形式序列化. pickle.load(file) 反序列化对象.将文件中的数据解析为一个Python

随机推荐