Python模块dbf的MemoryError

时间:2015-08-10 18:46:31

标签: python-2.7 csv dbf

我想通过以下方式将csv转换为python中的dbf:

/route1/list

但我收到以下错误:

import dbf
table = dbf.from_csv('/home/beata/Documents/NC/CNRM_control/CNRM_pr_power1961','CNRM_pr_power1961.dbf')

csv的大小为2.4 GiB。我的ubuntu 14.04 LTS OS类型是64位,31.3 GiB内存和Intel Xeon(R)CPU ES-1660vz @ 3.70GHz x12

有人可以写我应该怎么做来解决这个错误吗?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

你遇到的问题是dbf.from_csv尝试创建一个内存表,而你的操作系统不会让你有足够的RAM来这样做。

为了解决这个问题,如果你通过from_csv,我会重新编写on_disk=True以直接写入磁盘。查看PyPI以获取最新代码。

剩下的问题是dbf格式本身 - 由于内部结构不是为大容量设计的,因此可能会遇到大文件的问题。如果更新没有完全解决您的问题,您将需要拆分csv文件并从中创建多个dbfs。

如果您有更多问题,请随时给我发电子邮件。