shelve类似于一个key-value数据库,可以很方便的用来保存Python的内存对象,其内部使用pickle来序列化数据,简单来说,使用者可以将一个列表、字典、或者用户自定义的类实例保存到shelve中,下次需要用的时候直接取出来,就是一个Python内存对象,不需要像传统数据库一样,先取出数据,然后用这些数据重新构造一遍所需要的对象。

简单使用:

>>> import shelve
>>> d = shelve.open('t.s')
>>> d['key']= []
>>> d['key']
[]
>>> d.cache
{}
>>> d['key'].append(1)
>>> d['key']  #发现直接修改没有起作用
[]
>>> #修改数据的方法
... 
>>> tmp = d['key'] #方法1.将要修改的数据复制给一个临时变量,修改临时变量,完成后,在将临时变量重新赋值给要修改的数据
>>> tmp.append(1)
>>> tmp.append(2)
>>> d['key'] = tmp
>>> d['key']
[1, 2]
>>> d.cache
{}
>>> d.close()
>>> d = shelve.open('t.s', writeback=True)  #方法2.将writeback置为True,当数据发生变化会回写,不过会导致内存开销比较大
>>> d['key']
[1, 2]
>>> d.cache 
{'key': [1, 2]}
>>> d['key'].append(3)
>>> d['key'].append(4)
>>> d['key']
[1, 2, 3, 4]
>>> d.cache  #cache同步变化
{'key': [1, 2, 3, 4]}
>>> d.close()

 

相关文章:

  • 2021-04-25
  • 2021-05-22
  • 2021-11-15
  • 2021-11-30
  • 2021-12-02
  • 2021-12-02
  • 2021-12-16
猜你喜欢
  • 2022-12-23
  • 2021-12-05
  • 2022-01-05
  • 2022-12-23
  • 2021-06-09
  • 2021-06-02
  • 2022-12-23
相关资源
相似解决方案