Shelve是Python内置的一个持久化模块,可用于将Python对象实例代码转化为字节流(binary stream)并将其写入文件,以便后续可以重新加载到内存中。
Shelve的使用分为以下几个步骤:
- 打开shelve文件:使用
shelve.open
函数打开要写入的shelve文件,可以指定模式为"r"(只读)、"w"(写入)、"c"(写入前检查),默认为"c"。
import shelve
with shelve.open("my_shelve") as my_shelve:
# your code here
- 将Python对象实例代码写入shelve:使用shelve的
__setitem__
方法将Python对象实例代码存入shelve。键为任意字符串,值为要存储的Python对象实例代码。
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
person1 = Person("Tom", 18)
person2 = Person("Lucy", 20)
with shelve.open("my_shelve") as my_shelve:
my_shelve["person1"] = person1
my_shelve["person2"] = person2
- 从shelve加载Python对象实例代码:使用shelve的
__getitem__
方法从shelve文件中加载Python对象实例代码。
with shelve.open("my_shelve") as my_shelve:
print(my_shelve["person1"].name) # Tom
print(my_shelve["person2"].age) # 20
- 关闭shelve文件:使用shelve的
close
方法关闭shelve文件。
with shelve.open("my_shelve") as my_shelve:
# your code here
my_shelve.close()
示例1:存储列表到shelve文件
import shelve
list_a = [1, 2, 3]
with shelve.open("my_shelve") as my_shelve:
my_shelve["list_a"] = list_a
with shelve.open("my_shelve") as my_shelve:
print(my_shelve["list_a"]) # [1, 2, 3]
示例2:存储字典到shelve文件
import shelve
dict_a = {"name": "Alice", "age": 25}
with shelve.open("my_shelve") as my_shelve:
my_shelve["dict_a"] = dict_a
with shelve.open("my_shelve") as my_shelve:
print(my_shelve["dict_a"]["name"]) # Alice
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:shelve 用来持久化任意的Python对象实例代码 - Python技术站