Python实用模块:shelve与re的深入解析
1. shelve模块的使用与潜在陷阱
在Python中, shelve 模块为我们提供了一种方便的方式来持久化存储数据,它允许我们像操作字典一样操作存储在文件中的数据。然而,使用 shelve 模块时存在一个潜在的陷阱。
1.1 潜在陷阱示例
import shelve
s = shelve.open('test.dat')
s['x'] = ['a', 'b', 'c']
s['x'].append('d')
print(s['x']) # 输出: ['a', 'b', 'c']
在上述代码中,我们期望 s['x'] 的结果是 ['a', 'b', 'c', 'd'] ,但实际上 'd' 并没有被添加进去。这是因为当我们从 shelve 对象中查找元素时,对象是从其存储版本中重建的;而当我们为键赋值时,才会将其存储。具体过程如下:
- 列表 ['a', 'b', 'c'] 以键 'x' 存储在 s 中。
- 从存储中检索该列表,创建一个新的列表副本,并将 'd' 追加到副本中,但这个修改后的版本并未被存储。
- 最后,再次检索原始列表,不包含 'd' 。
超级会员免费看
订阅专栏 解锁全文
87

被折叠的 条评论
为什么被折叠?



