Read Binary data

Mars creature jinbow at gmail.com
Thu Sep 4 18:30:46 CEST 2008


On Sep 4, 12:03 pm, Fredrik Lundh <fred... at pythonware.com> wrote:
> "Mars creature" wrote:
> >   I am trying to read a binary file created by the following matlab
> > command:
> > fid=fopen('a.bin','w','b'); fwrite(fid,a,'real*8'); fclose(fid);, and
> > wondering how to do it in Python. I googled it but still get
> > confused.
> >   'b' in fopen is for 'big-endian', 'real*8' in fwrite is for 64bit
> > float.
>
> f = open("a.bin", "rb") # read binary data
> s = f.read() # read all bytes into a string
>
> import array, sys
>
> a = array.array("f", s) # "f" for float
> if sys.byteorder != "big":
>     a.byteswap()
>
> </F>

Thanks Fredrik! I appreciate it!
The only thing is that a = array.array("f", s) should be a =
array.array("d", s) as the data is double precision.
Thanks again!



More information about the Python-list mailing list