我有上面列出的错误,但一直无法找到它的含义。我是numpy和它的{.frombuffer()}命令的新手。其中该错误触发的代码是:numpy.frombuffer ValueError:缓冲区小于请求的大小
ARRAY_1=400000004
fid=open(fn,'rb')
fid.seek(w+x+y+z) #w+x+y+z=
if(condition==0):
b=fid.read(struct.calcsize(fmt+str(ARRAY_1)+'b'))
myClass.y = numpy.frombuffer(b,'b',struct.calcsize(fmt+str(ARRAY_1)+'b'))
else:
b=fid.read(struct.calcsize(fmt+str(ARRAY_1)+'h'))
myClass.y = numpy.frombuffer(b,'h',struct.calcsize(fmt+str(ARRAY_1)+'h')) #error this line
其中FMT是 '>',其中条件== 0和 '<',其中条件!= 0。这正在改变二进制文件的读取方式,大端或小端。 fid是一个已经打开的二进制文件。
调试到这一点,条件= 1,所以我有一种感觉,如果条件的最后一个语句也有错误,我现在只是看不到它。
正如我之前所说,我试图找出错误的含义,但没有任何运气。如果有人知道它为什么会出现在我身上,我真的很喜欢这个帮助。
你可以发布更多的代码吗?如果我们知道二进制文件如何存储到'fid',以及设置了“ARRAY_1”,那么我认为这会有所帮助。 – Frangipanes
@Frangipanes我按照你的要求添加了更多的代码,但我不确定它会有多大的帮助。 – SanticL
您是否也可以包含您的进口产品,以便我们也了解您使用的模块? – Frangipanes