numpy.memmap在有足够的内存时返回的内存不足

时间:2018-05-10 00:44:31

标签: python numpy numpy-memmap

在64位Windows机器上典型调用numpy.memmap()期间,python引发以下错误:

OSError: [WinError 8] Not enough memory resources are available to process this command

另一台Windows机器使用不同的文本引发相同的错误:

OSError: [WinError 8] Not enough storage is available to process this command.

以下是代码摘要:

with open(infile, 'rb') as f:
  ......
  array = numpy.memmap(f, dtype='uint8', mode='r', offset=offset, shape=arraysize).tolist()

此时Python只使用了50MB的内存。内存耗尽的原因是什么?

1 个答案:

答案 0 :(得分:2)

事实证明,问题在于,memmap调用中的offset + shape大于文件的总大小(即我试图超出文件大小)

在这种情况下,有关内存资源的错误消息有点误导。