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

Brennan Williams brennan.williams@visualreservoir....
Thu Jul 31 21:42:15 CDT 2008


I've tried replacing numpyio with both fopen and now also npfile but I'm 
getting the same problem, i.e. if I write a numpy array to the file,
everything else before that position in the file is now zero. It is as 
if it is a new file, not an existing one.

Brennan Williams wrote:
> 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.
> _______________________________________________
> SciPy-user mailing list
> SciPy-user@scipy.org
> http://projects.scipy.org/mailman/listinfo/scipy-user
>
>   



More information about the SciPy-user mailing list