博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python Skelve 库
阅读量:6280 次
发布时间:2019-06-22

本文共 2269 字,大约阅读时间需要 7 分钟。

在Python中有一个简单的轻量级的类似于Key-value的存储型数据库,那就是Skelve。下面就来一起看一看这个库的简单的使用吧。


小例子

我本人比较喜欢从例子出发,然后再来研究这些内部的行为。所以下面先来看一个简单的小例子吧。

>>> def write():...     data=shelve.open(r'F:\Data.dat')...     map = {}...     map['name'] ="mark"...     map['age'] = 20...     pid ='mark'...     data[pid] = map...     data.close()...     print 'file writed success!'...>>> write()file writed success!>>> def read():...     pid='mark'...     data[pid]=shelve.open(r'F:\Data.dat')...     print "File read Success!"...>>> read()Traceback (most recent call last):  File "
", line 1, in
File "
", line 3, in readNameError: global name 'data' is not defined>>> def read File "
", line 1 def read ^SyntaxError: invalid syntax>>> del read>>> def read():... pid = 'mark'... data = shelve.open(r'F:\Data.dat')... print "File read Success!"... return data[pid]...>>> write()file writed success!>>> read()File read Success!{
'age': 20, 'name': 'mark'}>>>

现在到电脑上的F盘看一下文件的详细的信息吧。

0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 01286470 310a 5327 6167 6527 0a70 320a 4932300a 7353 276e 616d 6527 0a70 330a 53276d61 726b 270a 7034 0a73 2e01 6d61 726b

它们都是通特定的编码来实现的持久化的操作,如果我们想获取数据的话,就只能按照给定的接口来进行获取了。

浅析

先来看存储那个接口的实现吧。

>>> def write():...     data=shelve.open(r'F:\Data.dat')...     map = {}...     map['name'] ="mark"...     map['age'] = 20...     pid ='mark'...     data[pid] = map...     data.close()...     print 'file writed success!'...

观察 : 这里主要是调用了Shelve的open接口。作用就是打开特定路径下的一个文件,这里以.dat后缀结束了。

然后我们看到了一个key的变量,对应了一个值,而另外一个value则是一个类似字典的集合。最后通过Shelve整合了起来。这就是整个流程。

原理: 这样我们就不难看出了吧。整个数据持久化的逻辑就是通过一个键值对的形式来保存的。外界通过接口来实现数据的存储。


看完了写入,接下来就是读取数据了。下面也是来研读一下代码吧。

>>> def read():...     pid='mark'...     data[pid]=shelve.open(r'F:\Data.dat')...     print "File read Success!"...

这里更加的简单,指定的key肯定对应了指定的值。通过Skelve的接口,我们就可以获取到数据key对应的value了。接下来要怎么操作,就看自己的需求了。

小结

作为一个轻量级的数据持久化的库,Skelve并没有很高的使用价值,但是却可以高效的完成小数据的持久化过程。在某些情况下,这还是很有必要的。所以,要不要使用它,就由你来决定了。

不管你用,还是不用,Skelve都在那里。不怨不恨。

转载地址:http://fusva.baihongyu.com/

你可能感兴趣的文章
/etc/fstab,/etc/mtab,和 /proc/mounts
查看>>
Apache kafka 简介
查看>>
socket通信Demo
查看>>
技术人员的焦虑
查看>>
js 判断整数
查看>>
建设网站应该考虑哪些因素
查看>>
mongodb $exists
查看>>
js实现页面跳转的几种方式
查看>>
sbt笔记一 hello-sbt
查看>>
常用链接
查看>>
pitfall override private method
查看>>
!important 和 * ----hack
查看>>
聊天界面图文混排
查看>>
控件的拖动
查看>>
svn eclipse unable to load default svn client的解决办法
查看>>
Android.mk 文件语法详解
查看>>
QT liunx 工具下载
查看>>
内核源码树
查看>>
Java 5 特性 Instrumentation 实践
查看>>
AppScan使用
查看>>