首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >OSError: 269892000个请求,269188084个写入

OSError: 269892000个请求,269188084个写入
EN

Stack Overflow用户
提问于 2016-06-06 20:49:06
回答 2查看 9.4K关注 0票数 10

在这里,当执行行"array.tofile(fp)“时,出现了OSError,它显示"OSError: 269892000请求,269188084写入”。我能知道这到底是什么意思吗?可能的解决方案是什么?

代码语言:javascript
运行
复制
def write_array(fp, array, version=None, allow_pickle=True, pickle_kwargs=None):
    ...
    ...**strong text**
    _check_version(version)
    used_ver = _write_array_header(fp, header_data_from_array_1_0(array),
                                   version)
    # this warning can be removed when 1.9 has aged enough
    if version != (2, 0) and used_ver == (2, 0):
        warnings.warn("Stored array in format 2.0. It can only be"
                      "read by NumPy >= 1.9", UserWarning)

# Set buffer size to 16 MiB to hide the Python loop overhead.
buffersize = max(16 * 1024 ** 2 // array.itemsize, 1)

if array.dtype.hasobject:
    # We contain Python objects so we cannot write out the data
    # directly.  Instead, we will pickle it out with version 2 of the
    # pickle protocol.
    if not allow_pickle:
        raise ValueError("Object arrays cannot be saved when "
                         "allow_pickle=False")
    if pickle_kwargs is None:
        pickle_kwargs = {}
    pickle.dump(array, fp, protocol=2, **pickle_kwargs)
elif array.flags.f_contiguous and not array.flags.c_contiguous:
    if isfileobj(fp):
        array.T.tofile(fp)
    else:
        for chunk in numpy.nditer(
                array, flags=['external_loop', 'buffered', 'zerosize_ok'],
                buffersize=buffersize, order='F'):
            fp.write(chunk.tobytes('C'))
else:
    if isfileobj(fp):
        print("Entered1")
        array.tofile(fp)
    else:
        for chunk in numpy.nditer(
                array, flags=['external_loop', 'buffered', 'zerosize_ok'],
                buffersize=buffersize, order='C'):
            fp.write(chunk.tobytes('C'))
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-15 01:26:41

当您使用numpy.load的变体读取数据时,如果您的驱动器中没有足够的空间,则会出现此问题。

该错误基本上意味着numpy请求269892000,但由于空间限制,它只能在269188084中读取/保存。

释放一些空间!

票数 15
EN

Stack Overflow用户

发布于 2017-02-16 06:46:40

我得到了一个类似的错误,显然是由于savez存储文件的临时文件夹空间耗尽而导致的。根据this Numpy bug report的说法,一种解决方法是设置TMPDIR=/path/to/bigger/drive/tmp。在我的例子中,例外是OSError,而不是报告的IOError,我认为这是Python3中的一个变化。看起来像是Numpy 1.12.0中的一个fix

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37657939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档