【问题标题】:Efficient way to store dictionary (hash) in file with python?使用python将字典(哈希)存储在文件中的有效方法?
【发布时间】:2011-04-13 01:52:42
【问题描述】:

我正在实现一个需要在磁盘上存储哈希的 Unix 用户空间工具。每次运行程序都会读取哈希,非常频繁。哈希只需要存储“name:path”值。

我查看了 Python 的 bsddb 标准库模块,但我可以看到它在 Python 3 中将被弃用。我还看到了 pickle 标准库模块。

我不是python人,那么哈希序列化和频繁打开/读取/关闭操作的有效方法是什么?

【问题讨论】:

    标签: python file dictionary serialization


    【解决方案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】:
    【解决方案3】:

    我会使用pickle,看看它是否足够快满足您的需求。

    【讨论】:

      猜你喜欢
      • 2013-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-05
      • 1970-01-01
      • 2017-07-31
      • 2013-07-12
      • 1970-01-01
      相关资源
      最近更新 更多