使用python将字典(哈希)存储在文件中的有效方法?
Posted
技术标签:
【中文标题】使用python将字典(哈希)存储在文件中的有效方法?【英文标题】:Efficient way to store dictionary (hash) in file with python? 【发布时间】:2011-04-13 01:52:42 【问题描述】:我正在实现一个需要在磁盘上存储哈希的 Unix 用户空间工具。每次运行程序都会读取哈希,非常频繁。哈希只需要存储“name:path”值。
我查看了 Python 的 bsddb 标准库模块,但我可以看到它在 Python 3 中将被弃用。我还看到了 pickle 标准库模块。
我不是python人,那么哈希序列化和频繁打开/读取/关闭操作的有效方法是什么?
【问题讨论】:
【参考方案1】:我会从shelve 模块开始,看看是不是太慢了。它完全符合您的要求。
import shelve
d = shelve.open('filename')
d['name'] = 'path'
d.close()
或从中读取
d = shelve.open('filename')
d = hash['name']
它本质上是提供字典抽象的 pickle 包装器。
【讨论】:
+1 很酷,以前从未听说过该模块。 -0.1 用于遮蔽hash
,不过。 :o) ...好的,现在已删除。
@jellybean,我觉得有些不对劲。将其更改为 d
以反映它本质上是一个 dict 的事实。很好看。【参考方案2】:
我建议您使用 pickle / shelve 进行数据序列化。
http://www.saltycrane.com/blog/2008/01/saving-python-dict-to-file-using-pickle/ http://docs.python.org/library/shelve.html【讨论】:
【参考方案3】:我会使用pickle,看看它是否足够快满足您的需求。
【讨论】:
以上是关于使用python将字典(哈希)存储在文件中的有效方法?的主要内容,如果未能解决你的问题,请参考以下文章