简单磁盘词典

chest的Python项目详细描述


Build StatusCoverage StatusVersion StatusDownloads

漏到磁盘上的字典。

Chest Acts就像一本字典,但它可以将内容写入磁盘。这是 适用于以下两种情况:

  1. 胸部可以容纳大于内存的数据集
  2. 箱子仍然存在,因此可以保存和装载以备以后使用

工作原理

胸部在两个位置存储数据

  1. 内存字典
  2. 在文件系统上,该文件系统位于文件箱所拥有的目录中

当用户将内容添加到箱子时,内存中的字典将填满。什么时候? 一个箱子在内存中存储的数据比期望的多(参见available_memory= 关键字参数)它将胸部的较大内容作为pickle写入磁盘 文件(可配置pickle选项)。当用户要求值时 chest检查内存存储,然后检查磁盘并将值加载到 必要时,将其他值推送到磁盘。

胸部是一个简单的项目。它旨在为 协助存储和检索numpy阵列。但是它的设计和 实现与本例无关,因此可以用于 其他情况。

用最少的工作箱可以作为一个沟通点 在多个进程之间。

已知故障

胸部被设计成容纳适量的大核阵列。它 不处理非常多的小键值对用例(尽管可以使用 很小的努力)。尤其是胸部有以下缺陷

  1. 胸部不是多过程安全的。我们至少应该建立一个文件锁 在.keys文件周围。
  2. 胸部不支持椎间盘上变量的变异。

许可证

新的疯牛病。见License

安装

chest可通过conda

conda install chest

chest在python包索引(pypi)上:

pip install chest

示例

>>>fromchestimportChest>>>c=Chest()>>># Acts like a normal dictionary>>>c['x']=[1,2,3]>>>c['x'][1,2,3]>>># Data persists to local files>>>c.flush()>>>importos>>>os.listdir(c.path)['.keys','x']>>># These files hold pickled results>>>importpickle>>>pickle.load(open(c.key_to_filename('x')))[1,2,3]>>># Though one normally accesses these files with chest itself>>>c2=Chest(path=c.path)>>>c2.keys()['x']>>>c2['x'][1,2,3]>>># Chest is configurable, so one can use json, etc. instead of pickle>>>importjson>>>c=Chest(path='my-chest',dump=json.dump,load=json.load)>>>c['x']=[1,2,3]>>>c.flush()>>>json.load(open(c.key_to_filename('x')))[1,2,3]

依赖关系

Chest使用公共代码库支持python 2.6+和python 3.2+。

它目前依赖于heapdict库。

这是一种对体重的依赖。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java HttpSession API   如果模式可用,xml java将忽略DTD进行验证   java从远程位置调用Jersey API   在Java中直接从URL读取html   如何使用#Hibernate#Spring#Java在MySql中存储“日期”?   java如何在JSP中迭代列表对象?   java如何使用PDFBox确定实际PDF内容的位置?   utf 8计算Java字符串的UTF8长度,而不实际对其进行编码   java我正在尝试通过whatsapp或任何其他messenger应用程序发送/共享mp3原始文件。   使用Java定期将记录写入CSV文件   用于队列和工作程序设计的java实时执行器池   java与t1的区别是什么。当前线程和线程。当前线程?   java将大字符串写入文本文件?   java传递给侦听器   java如何从对象列表向JComboBox添加项