Python Skelve 库

Python的Skelve库提供了一种简单的Key-value存储方式,适用于轻量级数据持久化。本文通过实例介绍Skelve的使用,包括数据的写入和读取,分析其工作原理,并探讨其在特定场景下的应用价值。
摘要由CSDN通过智能技术生成

在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 "<stdin>", line 1, in <module>
  File "<stdin>", line 3, in read
NameError: global name 'data' is not defined
>>> def read
  File "<stdin>", 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 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0128
6470 310a 5327 6167 6527 0a70 320a 4932
300a 7353 276e 616d 6527 0a70 330a 5327
6d61 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都在那里。不怨不恨。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泰 戈 尔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值