【问题标题】:numpy loading file errornumpy加载文件错误
【发布时间】:2014-11-25 13:04:10
【问题描述】:

我试图加载 numpy 创建的 .npy 文件:

import numpy as np

F = np.load('file.npy')

numpy 会引发此错误:

C:\Miniconda3\lib\site-packages\numpy\lib\npyio.py in load(file, mmap_mode)

379         N = len(format.MAGIC_PREFIX)
380         magic = fid.read(N)

--> 381 fid.seek(-N, 1) # 备份

382         if magic.startswith(_ZIP_PREFIX):
383             # zip-file (assume .npz)

OSError: [Errno 22] 无效参数

谁能解释一下这是什么意思?如何恢复我的文件?

【问题讨论】:

    标签: python numpy


    【解决方案1】:

    您正在使用不支持seek 方法的文件对象。注意numpy.loadmust support the seek methodfile参数。我的猜测是,您可能正在对一个文件对象进行操作,该文件对象对应于另一个已在其他地方打开并保持打开状态的文件对象:

    >>> f = open('test.npy', 'wb')  # file remains open after this line
    >>> np.load('test.npy')         # numpy now wants to use the same file
                                    # but cannot apply `seek` to the file opened elsewhere
    
    Traceback (most recent call last):
      File "<pyshell#114>", line 1, in <module>
        np.load('test.npy')
      File "C:\Python27\lib\site-packages\numpy\lib\npyio.py", line 370, in load
        fid.seek(-N, 1) # back-up
    IOError: [Errno 22] Invalid argument
    

    请注意,我收到与您相同的错误。如果您有一个打开的文件对象,您需要在使用 np.load 和使用 np.save 保存文件对象之前关闭它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-09
      • 2012-04-08
      • 2016-11-09
      • 2012-10-16
      • 1970-01-01
      • 2015-04-14
      • 1970-01-01
      • 2010-11-08
      相关资源
      最近更新 更多