numpy加载文件错误

时间:2014-11-25 13:04:10

标签: python numpy

我尝试加载 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)#back-up

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

OSError:[Errno 22]参数无效

有人能解释一下它的意思吗?我该如何恢复我的文件?

1 个答案:

答案 0 :(得分:2)

您正在使用不支持seek方法的文件对象。请注意file must support the seek methodnumpy.load参数。我的猜测是你可能正在操作一个文件对象,该文件对象对应于另一个已在其他地方打开并保持打开的文件对象:

>>> 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保存文件对象之前关闭它。