Python shelve 模块
使用json或者pickle持久化数据,能dump多次,但load的话只能取到最新的dump,
因为先前的数据已经被后面dump的数据覆盖掉了。
如果想要实现dump多次不被覆盖,就可以想到使用shelve模块。
shelve模块可以持久化所有pickle所支持的数据类型。
写入:
import shelve d = shelve.open('shelve_test') # 打开一个文件 info = {'age': 18, 'blog': 'https://www.cnblogs.com/dbf-'}
name = ['d', 'b', 'f', '-'] d['name'] = name # name的key为‘name’
d['info'] = info # info的key为‘info’
d.close()
读出:
import shelve d = shelve.open('shelve_test') for k, v in d.items():
print(k, v) # 全部读出
print('\n')
print(d.get('info')) # 读一项
输出结果:
name ['d', 'b', 'f', '-']
info {'blog': 'https://www.cnblogs.com/dbf-', 'age': 18}
{'blog': 'https://www.cnblogs.com/dbf-', 'age': 18}
Python shelve 模块的更多相关文章
- [Python shelve模块Error]bsddb.db.DBPageNotFoundError: (-30986, 'DB_PAGE_NOTFOUND: Requested page not found')
在用scrapy抓数据,用shelve保存时出现了这个Error,目标是储存一串unicode字符串组成的列表,exception代码是tempbase['joke']=joke_list,测试只要j ...
- Python shelve模块的使用方法
#!/usr/bin/env python3 # -*- coding: utf-8 -*- __author__ = '人生入戏' import shelve,time #写 x = shelve. ...
- python shelve模块
#coding=utf- import shelve f = shelve.open("shelve_test") f['info'] = "alex" f[, ...
- python序列化: json & pickle & shelve 模块
一.json & pickle & shelve 模块 json,用于字符串 和 python数据类型间进行转换pickle,用于python特有的类型 和 python的数据类型间进 ...
- python pickle 和 shelve模块
pickle和shelve模块都可以把python对象存储到文件中,下面来看看它们的用法吧 1.pickle 写: 以写方式打开一个文件描述符,调用pickle.dump把对象写进去 dn = {'b ...
- 小白的Python之路 day5 shelve模块讲解
shelve模块讲解 一.概述 之前我们说不管是json也好,还是pickle也好,在python3中只能dump一次和load一次,有什么方法可以向dump多少次就dump多少次,并且load不会出 ...
- Python 序列化模块(json,pickle,shelve)
json模块 JSON (JavaScript Object Notation):是一个轻量级的数据交换格式模块,受javascript对象文本语法启发,但不属于JavaScript的子集. 常用方法 ...
- python之shelve模块详解
一.定义 Shelve是对象持久化保存方法,将对象保存到文件里面,缺省(即默认)的数据存储文件是二进制的. 二.用途 可以作为一个简单的数据存储方案. 三.用法 使用时,只需要使用open函数获取一个 ...
- Python全栈之路----常用模块----序列化(json&pickle&shelve)模块详解
把内存数据转成字符,叫序列化:把字符转成内存数据类型,叫反序列化. Json模块 Json模块提供了四个功能:序列化:dumps.dump:反序列化:loads.load. import json d ...
随机推荐
- python 简单的串口收发数据
# -*- coding: utf- -*- import serial #打开串口 serialPort="COM3" #串口 baudRate= #波特率 ser=serial ...
- ehcache 简介和基本api使用
文章转载自: https://blog.csdn.net/zhouzhiwengang/article/details/59838105 1.ehcahce简介 在开发高并发量,高性能的网站应用系统时 ...
- linux存储管理之mount挂载
Mount 挂载详解 ====================================================================================本节内容: ...
- mybatis-generator自动生成代码工具
1.在项目的配置文件中放入配置文件mybatis-generator-config.xml 根据情况修改下配置 <?xml version="1.0" encoding= ...
- ID基本操作(在框架内处理文本)5.28
1.可以直接拖入文档,word,excel,rtf,还可以选中文字,导出文本. 2. 批量把一段文字改为另一段. 还可以改特殊符号.定义范围 . 建立文字后鼠标右键,选择文本框架选项 直接拖动文本框架 ...
- 命令行听歌http://www.linuxsir.org/bbs/thread280142.html?pageon=1#1584689
在纯字符界面下听歌 利用 play 命令可以在命令行中播放音频文件,在纯字符界面下也没问题! ----------------------------------------------------- ...
- babel,webpack-dev-server配置
github仓库:https://github.com/llcMite/webpack.git 1.什么是webpack? webpack可以看做是模块打包机:它做的事情是,将静态资源当成模块打包成一 ...
- leetcode python 008
## 字符串转化为整数## 懒得自己做int0=63435435print(int(int0))
- Kafka0.8.2删除topic逻辑(转)
原文链接:Kafka0.8.2.1删除topic逻辑 前提条件: 在启动broker时候开启删除topic的开关,即在server.properties中添加: delete.topic.enabl ...
- Vue编译提示警告
There are multiple modules with names that only differ in casing.有多个模块同名仅大小写不同This can lead to unexp ...