- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我只是按照书中给出的示例来说明 macOS High Sierra 上的 Python shelve
模块。
如下所示,只有两个短字符串的小元组存储在一个 shelf 中。正如您在最后一行中看到的那样,生成的文件大小为 16 兆字节。
只有当我在 macOS High Sierra 上尝试使用通过 Homebrew(3.6.4 或 2.7.14)安装的 Python 版本的示例时,结果文件才会变得那么大。如果我在 Linux 主机上运行它或使用预安装的 Python 版本 (2.7.10) 或通过 macOS 中的官方安装程序安装 Python 3.6.4,生成的 addresses
文件只是几个千字节大,正如其他人在评论中所报告的那样(谢谢!)。
~/tmp> rm addresses
~/tmp> python3
Python 3.6.4 (default, Jan 6 2018, 18:43:09)
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)] on darwin
[...]
>>> import shelve
>>> book = shelve.open("addresses")
>>> book['flintstone'] = ('fred', '555-1234', '1233 Bedrock Place')
>>> book['rubble'] = ('barney', '555-4321', '1235 Bedrock Place')
>>> book.close()
>>>
~/tmp> ll
total 32768
-rw-r--r-- 1 moritz staff 16M Jan 24 13:05 addresses
最佳答案
我可以确认此行为是由 gdbm 1.14 引入的,gdbm 是 shelve
用来访问数据库文件的库。
与 change 2e8a5e0 , gdbm 将尝试扩展文件大小以匹配 next_block_size
。 next_block_size
由4 * block_size
计算,这是底层文件系统的最佳 I/O block 大小,obtained by stat.st_blksize
returned by stat(2)
.在我的 macOS 10.13.3 上,SSD 卷上的 APFS 文件 stat.st_blksize
是 4194304 字节,next_block_size
是 16777216 字节,因此 init db 文件大小是 16MB。
ps: 我检查了手头硬盘卷上的 HFS+ fs,st_blksize
值为 4096 字节。
关于python - 为什么包含很少数据的 Python shelf 文件在 macOS 上这么大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48422744/
我有一个用Shelf和Rpc api编写的dart Web服务应用程序。 我需要在我的api方法中检查客户端Ip,但是我不知道怎么做。 上下文方法不包含HttpRequest .contentInfo
我想将一些更改从我的Mercurial架子复制到我的工作目录中,而在架子上保留一个不变的副本。 Git可以让我使用git stash apply做到这一点,但是我找不到让TortoiseHg做到这一点
我认为最好的解释方式是举个例子: >>> class Person: ... def __init__(self, brother=None): ... self.brothe
我有一个很大的字典 100 000 个键和大型 numpy 数组作为值。我想将其另存为文件以便更快加载。 我尝试将其转储为泡菜,但内存不足。然后尝试了 json.dump 但不支持 Numpy 数组作
我正在使用架子类来完成我的工作。但我不知道为什么它不起作用。这就是我正在做的事情: import shelve file = shelve.open('data.db') shelf = shelve
我突然想到流式传输字符串是有意义的,每个字符串代表来自数据库查询的一个元素,而不是在过程结束时返回它们的整个列表,这可能会在浏览器上更早地获得第一个结果.所以我尝试用 Redstone 来实现它使用S
我正在使用 Dart Shelf 框架构建 API。 Get 工作正常,但我在发布时遇到问题。我无法访问服务器中发布请求的任何正文参数。这是我尝试过的。 // shelf-router router.
我想在我的应用程序中显示一些书籍和杂志封面(类似于 iBooks 中的书架 View )。到目前为止,我已经实现了自己的 UIScrollView,它可以很好地显示封面 - 不幸的是,由于性能问题,我
我有一个库,它发出 Web 请求并将结果传递给回调,如下例所示: someReadyWebSearchThirdPartyLibrary.getSearch(parameters, error, ca
我很想知道是否有人以编程方式在 tvOS 应用程序中成功设置了 Top Shelf 图像?我已经阅读了一些教程(例如 this one),其中详细介绍了以 sectioned 或 inset 样式设置
我创建了一个简单的 AppleTV 项目来按类别显示多个视频,浏览和播放视频工作正常。它已作为使用 TVML 和 TVJS 的客户端-服务器应用程序实现,因此大部分应用程序逻辑都在 Javascrip
我只是按照书中给出的示例来说明 macOS High Sierra 上的 Python shelve 模块。 如下所示,只有两个短字符串的小元组存储在一个 shelf 中。正如您在最后一行中看到的那样
假设有人让我为他们构建一个具有大量自定义功能的 youtube 克隆,以支持他们想做的一大堆古怪的事情。 我如何决定从头开始构建与构建白标产品或开源产品对我来说是否更好? 由于我过去的工作经验,我倾向
我想使用 RPC 库来开发 Dart 服务器端 Restful。在库存储库中,它带来了两个使用示例(https://github.com/dart-lang/rpc-examples/tree/mas
我有一个使用 jest 的项目,我可以用 npm test 运行 jest如果我不设置预设,它就可以工作。 我需要预设@shelf/jest-mongodb ,我得到了这篇文章标题中的错误。 这是我的
我需要在 Shelf 中设置多个“set-cookie” header ,但由于 header 是 Map ,设置第二个替换第一个等等,因为键是唯一的。我如何在 Dart 中解决这个问题? 最佳答案
我正在从事集成测试,因此从数据库获取数据会使测试用例执行速度变慢。尝试使用 jest-mongodb 设置临时数据库。但无法找到在 typescript-nodejs 项目中设置 jest-mongo
这张图片来自this document in Material Designspecification .它的标题是: Flexible toolbar and card toolbar 为什么他们称
我是一名优秀的程序员,十分优秀!