我尝试加载 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]参数无效
有人能解释一下它的意思吗?我该如何恢复我的文件?
答案 0 :(得分:2)
您正在使用不支持seek
方法的文件对象。请注意file
must support the seek
method的numpy.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
保存文件对象之前关闭它。