A Thursday 04 November 2010 13:15:00 Olli Sipilä escrigué: > Hello, > I have a problem reading a binary file on OS X 10.6. On my desktop > mac (OS X 10.4.11, Python 2.5.4, Numpy 1.3.0), the command CELLS, > NSIZE, NE = fromfile(fp, int32, 3), where fp is the filename, > correctly prints "21 20 300". However, when I try the above on my > laptop using Snow Leopard (Python 2.6.6, Numpy 1.5.0), I get the > numbers "352321536 335544320 738263040". This results in a failure > when trying to read the data that comes afterwards (Numpy fails with > "array too big"). I assume this error may have something to do with > 10.6 being 64-bit and 10.4 being 32-bit; however, the Python 2.6.6. > distribution is also 32-bit. Any thoughts on this? Thanks,Olli
Yeah. Most probably your Mac has a PowerPC processor, which has a different byte-ordering than Intel. Look at this: >>> a = np.int32(21) >>> a.byteswap() 352321536 >>> a = np.int32(20) >>> a.byteswap() 335544320 >>> a = np.int32(300) >>> a.byteswap() 738263040 To solve this, just apply byteswap once more: >>> a = np.int32(300) >>> a.byteswap().byteswap() 300 and you are done. -- Francesc Alted _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion