[SciPy-user] scipy.io.numpyio fwrite - appending or updating an array

Brennan Williams brennan.williams@visualreservoir....
Thu Jul 31 17:12:17 CDT 2008


I have an existing binary file containing numpy array data. It has been 
created using open,fwrite & close and I can read the data using fread.

I want to be able to either append a new array to the end of the file or 
update an existing array within the file.

I've tried opening the file with a mode of either 'ab+' or 'wb+' and 
then writing the data using something like....

     fd = open(vfname, 'ab+')
     if fd:
       filepos=(self.id-1)*self.yarray.size*4
       fd.seek(filepos)
       fwrite(fd, self.yarray.size, self.yarray,'f')
       fd.close()

When I use a mode of 'ab+' it looks like the data has been written to 
the file ok (no errors reported) but when I read it back I get my 
original data.

When I use 'wb+' then my updated data gets written and read back ok. But 
when I reload the file, everything apart from my updated data (i.e. 
everything before it in the file) is now zero.

The '+' in the mode seems to make no difference.

What am I doing wrong?

Thanks

Bren.


More information about the SciPy-user mailing list