# shelve

# 概述

shelve​模块是Python标准库中的一个模块,它提供了一种简单的持久化存储Python对象的方法。shelve​模块使用类似于字典的接口来存储和检索Python对象,但是它可以将这些对象永久地保存在磁盘上,以便在程序重新运行时重新加载。

使用shelve​模块可以轻松地将Python对象持久化到磁盘上,并在需要时重新加载它们。它支持对大多数Python对象进行存储,包括列表、字典、元组、类实例等。

同时shelve​模块还提供了一些其他的功能,如自动同步和缓存控制等,可以根据具体需求进行使用。

但需要注意的是,由于shelve​模块是基于pickle模块实现的,因此它也存在一些安全风险。因此,在使用shelve​模块时,需要小心防止注入攻击等安全问题。

# 示例

import shelve as sh

DB_NAME = "ff.db"
db = sh.open(DB_NAME) # 从路径加载数据库文件(有的话)或者新建数据库(没有的话)
print_db(db)

db['mylist'] = [1, 2, 3]
db['mydict'] = {'key1': 'value1', 'key2': 'value2'}

ml = db["mylist"]
print(ml)
[print(f"{k}-{v}") for k,v in db.items()]
"""
mylist - [1, 2, 3]
mydict - {'key1': 'value1', 'key2': 'value2'}
"""

db.close()