问题描述
当 mode != 'r' 时,即使超出文件尾的正偏移量也是有效的;
fmt = "IIiiIIddiIiii64sIIII48sxxxx"
fmt1 = "?Idd16s"
file = open(self.resultName,"wb")
file.write(struct.pack(fmt,*self.header))
for i in range(someVar):
file.write(struct.pack(fmt1,*self.arr2[i]))
file.flush()
file.close
wave = np.memmap(self.resultName,dtype = np.uint16,mode = "r+",offset = 1024)
File "C:\Python\python38\lib\site-packages\numpy\core\memmap.py",line 266,in __new__
self = ndarray.__new__(subtype,shape,dtype=descr,buffer=mm,ValueError: negative dimensions are not allowed
有人遇到过这个问题吗?你是怎么解决的?
谢谢
解决方法
文件将被写入,应该在使用 memmap 之前存在。 必须定义形状,然后才不会出错。
wave = np.memmap(self.resultName,dtype = np.uint16,mode = "r+",offset = 1024,shape = 7000000)