【发布时间】:2011-01-24 22:21:27
【问题描述】:
我有一些 500MB 的 json 文件。
如果我使用“琐碎的”json.load() 一次性加载所有内容,会消耗大量内存。
有没有办法部分读取文件?如果它是一个以行分隔的文本文件,我将能够遍历这些行。我正在寻找它的类比。
【问题讨论】:
-
我面临的问题是我有 195 个这样的文件要处理,而且似乎 python 的垃圾收集器做得不好。在第 10 个文件之后,我的内存不足。我在 Windows 7 上使用 Python 2.6.4。我有 3GB 内存
-
为什么需要一次将它们全部加载到内存中?这似乎无效。
-
我不必一次加载所有这些,但垃圾收集器似乎工作不正常。关闭许多文件后,它会消耗大量内存。当我遍历文件时,json 对象总是具有相同的变量名,并且我假设垃圾收集器应该释放其他文件占用的内存。但这只是没有发生
-
@user210481:“假设垃圾收集器应该释放内存”它应该。既然没有,那就有别的问题了。
-
@Jim Pivarski 的回答应该是被接受的。
标签: python json large-files